You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We plan to the following changes in the next major version up.
Backward incompatible changes
Low-level internal representation of flags. (The flags are defined as polymorphic variant in ver 3 or below, but will be implemented as char because BLAS/LAPACK's flags are characters. Overhead of conversion from polymorphic variant into char will be removed.)
The type of parameters ?up (for symmetric or triangular matrices) is bool in ver 3, [< A | L | U ] Slap.Common.uplo` in ver 4.
The type of parameters ?diag (for unit or non-unit triangular matrices) is [ N | U ] in ver 3, Slap.Common.diag in ver 4.
The type of parameter uplo of lacpy is [ L | U ] option in ver 3, [< A | L | U ] Slap.Common.uplo` in ver 4.
Changing subtyping tricks by phantom types. (The current version uses a subtyping trick for flags, vectors, matrices described at our paper, but polymorphic variant can achieve subtyping more simply. We will adopt the latter.)
The types of flags in Slap.Common, and 'cnt_or_dsc parameters of vectors and matrices will be changed.
Simplification of type parameters of Slap.Common.trans. ((('m, 'n, 'cnt_or_dsc) mat -> ('n, 'm, 'cnt_or_dsc) mat) trans is too long since it has extra type parameter 'cnt_or_dsc. (m * 'n -> 'n * 'm) trans is much simpler.)
The type of transpose flags in Slap.Common and parameters ~trans will be changed.
Deprecation of several functions.
Slap.Size.pred_dyn |-> Slap.Size.pred
Slap.Size.fold_left |-> Slap.Size.iter_acc
etc.
Backward compatible changes
Perhaps some changes will be contained in ver 4.1 or above.
Removing extra dynamic checks.
BLAS/LAPACK functions will be slightly faster.
-noassert option will be supported by the configure script.
Introduction of generative existential types by GADTs.
More lightweight syntax can be used.
Dynamic checks of equalility/inequality of type-level sizes.
E.g., if_eq : 'n Size.t -> 'm Size.t -> (('n, 'm) eq -> 'a) -> (unit -> 'a) -> 'a
We plan to the following changes in the next major version up.
Backward incompatible changes
charbecause BLAS/LAPACK's flags are characters. Overhead of conversion from polymorphic variant intocharwill be removed.)?up(for symmetric or triangular matrices) isboolin ver 3,[<A |L |U ] Slap.Common.uplo` in ver 4.?diag(for unit or non-unit triangular matrices) is[N |U ]in ver 3,Slap.Common.diagin ver 4.uplooflacpyis[L |U ] optionin ver 3,[<A |L |U ] Slap.Common.uplo` in ver 4.Slap.Common, and'cnt_or_dscparameters of vectors and matrices will be changed.Slap.Common.trans. ((('m, 'n, 'cnt_or_dsc) mat -> ('n, 'm, 'cnt_or_dsc) mat) transis too long since it has extra type parameter'cnt_or_dsc.(m * 'n -> 'n * 'm) transis much simpler.)Slap.Commonand parameters~transwill be changed.Slap.Size.pred_dyn|->Slap.Size.predSlap.Size.fold_left|->Slap.Size.iter_accBackward compatible changes
Perhaps some changes will be contained in ver 4.1 or above.
-noassertoption will be supported by theconfigurescript.if_eq : 'n Size.t -> 'm Size.t -> (('n, 'm) eq -> 'a) -> (unit -> 'a) -> 'acons,hd,tl, etc.laswp,lapmt,gtsv