koma icon indicating copy to clipboard operation
koma copied to clipboard

Make top-level functions non-specific to a particular primitive type.

Open kyonifer opened this issue 6 years ago • 2 comments

Right now the top-level koma functions often assume that we are dealing with double-valued matrices. For some cases this is a reasonable default, for example zeros(3,3) creates a double-valued matrix in numpy as it does in koma. However, other methods such as cos(someMatrix) in matrixfuncs.kt could easily be overloaded to handle different matrix primitive types. The top-level functions should probably be reworked to not be tied to Double as much as possible.

kyonifer avatar Oct 17 '18 01:10 kyonifer

for example zeros(3,3) creates a double-valued matrix in numpy as it does in koma

Numpy also makes it easy to create arrays of other types. np.zeros((3, 3), dtype=np.float). Creating double arrays is just a default that you can override with one extra argument.

peastman avatar Oct 17 '18 01:10 peastman

Koma also does this. You can write

zeros(3, 3, MatrixTypes.FloatType)

See here. The goal was to mimic the behavior of numpy but remain safely typed.

kyonifer avatar Oct 17 '18 02:10 kyonifer