diffsol_c/
initial_condition_options_c.rs1use crate::initial_condition_options::InitialConditionSolverOptions;
2use crate::{c_getter_simple, c_invalid_arg, c_setter_simple};
3
4#[unsafe(no_mangle)]
10pub unsafe extern "C" fn diffsol_ic_options_free(options: *mut InitialConditionSolverOptions) {
11 if options.is_null() {
12 c_invalid_arg!("ic options is null");
13 return;
14 }
15 unsafe {
16 drop(Box::from_raw(options));
17 }
18}
19
20c_getter_simple!(
21 diffsol_ic_options,
22 InitialConditionSolverOptions,
23 i32,
24 use_linesearch
25);
26
27c_setter_simple!(
28 diffsol_ic_options,
29 InitialConditionSolverOptions,
30 i32,
31 use_linesearch
32);
33
34c_getter_simple!(
35 diffsol_ic_options,
36 InitialConditionSolverOptions,
37 usize,
38 max_linesearch_iterations
39);
40
41c_setter_simple!(
42 diffsol_ic_options,
43 InitialConditionSolverOptions,
44 usize,
45 max_linesearch_iterations
46);
47
48c_getter_simple!(
49 diffsol_ic_options,
50 InitialConditionSolverOptions,
51 usize,
52 max_newton_iterations
53);
54
55c_setter_simple!(
56 diffsol_ic_options,
57 InitialConditionSolverOptions,
58 usize,
59 max_newton_iterations
60);
61
62c_getter_simple!(
63 diffsol_ic_options,
64 InitialConditionSolverOptions,
65 usize,
66 max_linear_solver_setups
67);
68
69c_setter_simple!(
70 diffsol_ic_options,
71 InitialConditionSolverOptions,
72 usize,
73 max_linear_solver_setups
74);
75
76c_getter_simple!(
77 diffsol_ic_options,
78 InitialConditionSolverOptions,
79 f64,
80 step_reduction_factor
81);
82
83c_setter_simple!(
84 diffsol_ic_options,
85 InitialConditionSolverOptions,
86 f64,
87 step_reduction_factor
88);
89
90c_getter_simple!(
91 diffsol_ic_options,
92 InitialConditionSolverOptions,
93 f64,
94 armijo_constant
95);
96
97c_setter_simple!(
98 diffsol_ic_options,
99 InitialConditionSolverOptions,
100 f64,
101 armijo_constant
102);