File templates/icasadi/icasadi_lib.rs: Implemented rust wrappers for preconditioning coefficients.
Rethinking the API: all those functions for computing the w's in interface.c are now static, that is, we don't need to expose this functionality. Instead, we can have a single function called preconditioning which does not return anything; it computes the scaling parameters (the w's) and stores them internally (in uxip_space).
Associated Issues
Addresses #106
Addresses #107
TODOs
[x] Documentation of all new functions
[x] All tests must pass
[x] Implementation of simple/neat API in interface.c
[x] Implementation of Rust wrapper for initialisation
[x] Implementation of Rust wrapper for preconditioning parameters
[x] Implementation of Rust wrapper for initial penalty
[x] ~Implementation of Rust wrapper for w_cost~ (won't do/removed)
[x] ~Implementation of Rust wrapper for w1~ (won't do/removed)
[x] ~Implementation of Rust wrapper for w2~ (won't do/removed)
[x] ~Implementation of Rust wrapper for initial_penalty~ (won't do/removed)
[x] Rust tests in icasadi_lib.rs for all of the above
@Arun-R-M @smokinmirror I'll have another look later, but I believe we are close to merging this. Could you have a look? Any comments/doubts are welcome.
Main Changes
templates/icasadi/icasadi_lib.rs
: Implemented rust wrappers for preconditioning coefficients.interface.c
are now static, that is, we don't need to expose this functionality. Instead, we can have a single function calledpreconditioning
which does not return anything; it computes the scaling parameters (the w's) and stores them internally (inuxip_space
).Associated Issues
TODOs
interface.c
w_cost
~ (won't do/removed)w1
~ (won't do/removed)w2
~ (won't do/removed)initial_penalty
~ (won't do/removed)icasadi_lib.rs
for all of the above