core.matrix
core.matrix copied to clipboard
Protocols revision
We need to revise distribution of methods between protocols at some point. Here is an example why this is needed:
(defprotocol PZeroDimensionAccess
(get-0d [m])
(set-0d! [m value]))
(defprotocol PZeroDimensionSet
(set-0d [m value]))
There is no semantic reason why this two protocols should be different.
Agree some of these can be merged
We need to do so judiciously:
- Changing protocols will break core.matrix implementations in most cases
- Bigger protocols mean that implementers have fewer degrees of freedom when choosing which protocols to implement