git hash: dc0f3d66ad7c48493f4110fc15621a7d0f817647
Hint: hover on method name to see an additional informationProtocol | Method | vectorz | ndarray | ndarray-double | persistent vectors |
---|---|---|---|---|---|
PImplementation | supports-dimensionality? | ||||
new-matrix-nd | 1.72 µs 20.75 µs 1.90 ms | 2.17 µs 10.00 µs 925.76 µs | 2.27 µs 17.00 µs 1.84 ms | 1.80 µs 9.07 µs 44.00 µs | |
new-matrix | 56.15 ns 4.54 µs 450.14 µs | 1.83 µs 5.68 µs 473.02 µs | 1.85 µs 6.41 µs 456.09 µs | 1.90 µs 16.21 µs 146.14 µs | |
new-vector | 32.38 ns 911.55 ns 916.87 µs | 1.34 µs 2.01 µs 951.02 µs | 1.36 µs 2.12 µs 912.65 µs | 894.76 ns 72.67 µs 73.60 ms | |
construct-matrix | 2.25 µs 89.65 µs 9.84 ms | 7.63 µs 106.76 µs 9.13 ms | 8.22 µs 118.52 µs 10.03 ms | 1.70 µs 63.98 µs 6.60 ms | |
meta-info | |||||
implementation-key | |||||
PDimensionInfo | dimension-count | 16.61 ns | 19.98 ns | 19.98 ns | 38.11 ns |
is-vector? | 12.62 ns | 13.43 ns | 14.48 ns | 20.03 ns | |
is-scalar? | 13.27 ns | 15.67 ns | 17.78 ns | 19.63 ns | |
get-shape | 18.95 ns | 172.93 ns | 175.98 ns | 176.90 ns | |
dimensionality | 16.14 ns | 21.43 ns | 21.64 ns | 125.87 ns | |
PIndexedAccess | get-nd | 184.04 ns 184.01 ns 188.57 ns | 277.68 ns 281.59 ns 278.05 ns | 287.07 ns 286.44 ns 286.88 ns | 175.13 ns 216.49 ns 181.74 ns |
get-2d | 19.85 ns 22.47 ns 23.09 ns | 24.06 ns 24.19 ns 24.08 ns | 25.90 ns 25.88 ns 26.05 ns | 27.96 ns 35.56 ns 35.33 ns | |
get-1d | 18.65 ns 18.81 ns 18.56 ns | 41.27 ns 53.14 ns 55.48 ns | 46.33 ns 55.62 ns 59.64 ns | 24.54 ns 25.60 ns 31.47 ns | |
PIndexedSetting | is-mutable? | ||||
set-nd | 257.15 ns 4.64 µs 616.70 µs | 397.25 ns 2.62 µs 307.62 µs | 419.57 ns 4.99 µs 623.20 µs | 486.72 ns 574.05 ns 575.00 ns | |
set-2d | 55.31 ns 4.51 µs 629.78 µs | 254.98 ns 2.48 µs 311.81 µs | 278.57 ns 4.72 µs 632.59 µs | 58.55 ns 129.61 ns 180.23 ns | |
set-1d | 42.19 ns 959.21 ns 121.69 µs | 237.45 ns 670.88 ns 55.69 µs | 246.69 ns 1.12 µs 91.20 µs | 37.64 ns 93.46 ns 167.86 ns | |
PIndexedSettingMutable | set-nd! | 226.43 ns 224.92 ns 226.57 ns | 282.08 ns 284.82 ns 285.60 ns | 283.85 ns 285.11 ns 284.26 ns | |
set-2d! | 21.93 ns 22.07 ns 21.92 ns | 24.32 ns 24.35 ns 24.56 ns | 30.47 ns 33.59 ns 30.37 ns | ||
set-1d! | 19.37 ns 19.63 ns 19.23 ns | 29.58 ns 29.52 ns 30.99 ns | 33.46 ns 34.16 ns 34.56 ns | ||
PMatrixCloning | clone | 56.21 ns 4.55 µs 629.64 µs | 248.65 ns 2.47 µs 328.74 µs | 276.76 ns 4.82 µs 629.65 µs | 3.37 µs 128.05 µs 12.75 ms |
PTypeInfo | element-type | ||||
PMutableMatrixConstruction | mutable-matrix | 55.70 ns 4.53 µs 627.30 µs | 254.50 ns 2.47 µs 312.54 µs | 280.67 ns 4.77 µs 617.71 µs | |
PZeroDimensionConstruction | new-scalar-array | 42.35 ns | 42.42 ns | 43.01 ns | 42.23 ns |
PZeroDimensionAccess | set-0d! | 16.81 ns | 21.50 ns | ||
get-0d | 13.42 ns | 17.35 ns | 19.15 ns | 14.88 ns | |
PZeroDimensionSet | set-0d | 47.13 ns | 47.43 ns | 48.10 ns | 47.86 ns |
PSpecialisedConstructors | diagonal-matrix | 71.43 ns 434.41 ns 5.23 µs | 2.27 µs 9.98 µs 594.85 µs | 2.23 µs 9.12 µs 485.57 µs | 4.47 µs 84.41 µs 6.00 ms |
identity-matrix | 57.72 ns 4.49 µs 454.84 µs | 2.76 µs 75.70 µs 7.16 ms | 2.20 µs 8.25 µs 484.64 µs | 6.60 µs 112.50 µs 7.36 ms | |
PCoercion | coerce-param | 2.50 µs 106.87 µs 11.25 ms | 11.24 µs 217.10 µs 19.15 ms | 11.24 µs 217.08 µs 19.17 ms | 2.09 µs 79.72 µs 8.20 ms |
PBroadcast | broadcast | 172.20 ns 169.31 ns 171.11 ns | 2.46 µs 2.56 µs 4.58 µs | 2.49 µs 2.60 µs 4.53 µs | 2.49 µs 2.62 µs 4.62 µs |
PBroadcastLike | broadcast-like | 2.93 µs 3.03 µs 5.02 µs | 3.25 µs 3.36 µs 5.31 µs | 3.21 µs 3.32 µs 5.28 µs | 3.17 µs 3.30 µs 5.32 µs |
PConversion | convert-to-nested-vectors | 1.62 µs 45.35 µs 3.51 ms | 3.18 µs 109.88 µs 9.88 ms | 3.28 µs 121.99 µs 12.45 ms | |
PReshaping | reshape | 138.50 ns 4.56 µs 621.88 µs | 52.40 µs 132.59 ms | 53.16 µs 131.37 ms | 38.44 µs 3.39 ms |
PMatrixSlices | get-slice | 31.56 ns 32.22 ns 31.14 ns | 227.08 ns 231.13 ns 246.47 ns | 239.57 ns 228.35 ns 247.14 ns | 422.92 ns 34.49 ns 34.23 ns |
get-major-slice | 22.25 ns 22.27 ns 22.61 ns | 234.45 ns 241.52 ns 253.68 ns | 232.02 ns 248.13 ns 255.11 ns | 25.64 ns 26.32 ns 25.68 ns | |
get-column | 20.01 ns 20.58 ns 20.17 ns | 229.78 ns 232.15 ns 229.49 ns | 226.15 ns 229.57 ns 233.47 ns | 431.46 ns 2.67 µs 30.08 µs | |
get-row | 18.86 ns 18.75 ns 19.03 ns | 230.99 ns 245.86 ns 253.23 ns | 228.22 ns 249.29 ns 254.56 ns | 21.20 ns 21.18 ns 25.13 ns | |
PSubVector | subvector | 21.49 ns 21.16 ns 22.12 ns | 221.64 ns 221.17 ns 239.79 ns | 222.50 ns 219.29 ns 242.15 ns | 35.70 ns 43.12 ns 43.15 ns |
PSliceView | get-major-slice-view | 21.05 ns 21.12 ns 20.95 ns | 231.48 ns 256.33 ns 254.23 ns | 226.85 ns 249.22 ns 252.11 ns | 19.50 ns 23.28 ns 23.17 ns |
PSliceSeq | get-major-slice-seq | 117.11 ns 599.55 ns 4.80 µs | 61.49 ns 65.79 ns 65.45 ns | 170.88 ns 173.18 ns 175.07 ns | 32.73 ns 35.11 ns 35.00 ns |
PSliceJoin | join | 2.19 µs 18.41 µs 180.95 µs | 20.36 µs 497.60 µs 47.06 ms | 21.25 µs 565.85 µs 56.42 ms | 857.02 ns 3.75 µs 32.96 µs |
PMatrixSubComponents | main-diagonal | 39.37 ns 118.29 ns 1.62 µs | 222.99 ns 224.01 ns 238.43 ns | 227.31 ns 226.47 ns 242.45 ns | 4.07 µs 29.96 µs 315.22 µs |
PAssignment | assign-array! | ||||
assign! | 563.25 ns 3.67 µs 152.55 µs | 4.71 µs 87.43 µs 6.44 ms | 5.02 µs 126.59 µs 10.16 ms | ||
PMutableFill | fill! | 35.48 ns 443.60 ns 112.65 µs | 195.20 ns 17.82 µs 1.85 ms | 226.08 ns 21.55 µs 2.22 ms | |
PDoubleArrayOutput | as-double-array | ||||
to-double-array | |||||
PMatrixEquality | matrix-equals | 4.65 µs 405.44 µs 40.35 ms | 98.09 ns 710.85 ns 6.57 µs | 55.85 ns 250.74 ns 2.22 µs | 31.18 µs 2.18 ms 211.41 ms |
PMatrixMultiply | element-multiply | 111.15 ns 5.12 µs 910.05 µs | 906.97 ns 73.09 µs 7.82 ms | 365.94 ns 19.79 µs 2.22 ms | 15.12 µs 882.12 µs 81.35 ms |
matrix-multiply | 273.73 ns 153.41 µs 270.25 ms | 8.17 µs 5.76 ms 5.95 sec | 2.46 µs 335.39 µs 317.33 ms | 67.91 µs 39.30 ms | |
PMatrixProducts | outer-product | 2.54 µs | 776.85 µs | 759.26 µs | 624.57 µs |
inner-product | 260.54 ns 152.43 µs 270.08 ms | 58.59 µs 21.06 ms | 56.70 µs 26.99 ms | 206.08 µs 115.83 ms | |
PAddProduct | add-product | 143.95 ns 12.12 µs 2.42 ms | 5.09 µs 4.66 ms | 701.88 ns 337.96 µs 312.33 ms | 52.98 µs 2.75 ms |
PAddProductMutable | add-product! | 120.56 ns 7.43 µs 1.80 ms | 4.94 µs 4.71 ms | 520.10 ns 335.58 µs 310.16 ms | |
PAddScaledProduct | add-scaled-product | 207.94 ns 17.04 µs 3.40 ms | 5.52 µs 4.67 ms | 728.56 ns 320.38 µs 285.61 ms | 72.14 µs 3.67 ms |
PAddScaledProductMutable | add-scaled-product! | 168.78 ns 13.16 µs 2.63 ms | 5.42 µs 4.55 ms | 572.56 ns 307.94 µs 279.35 ms | |
PAddScaled | add-scaled | 117.86 ns 10.95 µs 2.14 ms | 880.48 ns 71.67 µs | 420.19 ns 24.54 µs 2.62 ms | 44.57 µs 2.31 ms |
PAddScaledMutable | add-scaled! | 29.09 ns 1.21 µs 471.09 µs | 735.28 ns 67.44 µs | 247.10 ns 19.89 µs 1.98 ms | |
PMatrixDivide | element-divide | 18.45 µs 871.16 µs 87.42 ms | 2.51 µs 287.17 µs | 382.40 ns 23.81 µs 2.65 ms | 29.48 µs 1.29 ms |
PMatrixMultiplyMutable | element-multiply! | 17.82 µs 869.92 µs 86.54 ms | 97.70 µs 7.49 ms 3.08 sec | ||
matrix-multiply! | 292.70 ns 155.44 µs 262.88 ms | 17.53 µs 4.81 ms | 12.92 µs 704.03 µs 340.34 ms | ||
PVectorTransform | vector-transform! | ||||
vector-transform | |||||
PMatrixScaling | pre-scale | 58.83 ns 4.95 µs 894.91 µs | 862.49 ns 69.26 µs 7.29 ms | 376.75 ns 20.11 µs 2.24 ms | 19.70 µs 1.25 ms 120.24 ms |
scale | 62.57 ns 5.10 µs 906.16 µs | 917.11 ns 74.23 µs 7.62 ms | 373.92 ns 20.18 µs 2.25 ms | 15.59 µs 874.11 µs 82.12 ms | |
PMatrixMutableScaling | pre-scale! | 32.22 ns 442.24 ns 115.85 µs | 184.55 ns 15.10 µs 1.49 ms | ||
scale! | 33.77 ns 454.73 ns 144.08 µs | 195.57 ns 15.86 µs 1.52 ms | |||
PMatrixAdd | matrix-sub | 58.38 ns 5.85 µs 1.21 ms | 755.22 ns 72.64 µs 8.64 ms | 300.30 ns 8.48 µs 1.25 ms | 28.84 µs 1.45 ms 133.13 ms |
matrix-add | 60.84 ns 5.90 µs 1.20 ms | 612.22 ns 42.56 µs 4.75 ms | 297.76 ns 8.42 µs 1.25 ms | 28.60 µs 1.41 ms 129.92 ms | |
PMatrixAddMutable | matrix-sub! | 42.20 ns 1.24 µs 491.88 µs | 557.43 ns 52.79 µs | 106.50 ns 3.88 µs 536.80 µs | |
matrix-add! | 41.32 ns 1.24 µs 498.07 µs | 453.82 ns 39.05 µs 4.31 ms | 102.42 ns 3.90 µs 532.32 µs | ||
PSubMatrix | submatrix | ||||
PComputeMatrix | compute-matrix | ||||
PTranspose | transpose | 20.37 ns 20.58 ns 21.16 ns | 227.65 ns 225.96 ns 234.10 ns | 233.31 ns 226.63 ns 237.12 ns | 25.31 µs 733.32 µs 65.06 ms |
PNumerical | numerical? | 1.01 µs 90.50 µs 9.40 ms | 9.73 µs 375.43 µs 33.00 ms | 9.68 µs 372.13 µs 33.82 ms | 14.74 µs 1.03 ms 97.96 ms |
PVectorOps | normalise | ||||
length-squared | |||||
length | |||||
vector-dot | |||||
PVectorCross | cross-product! | ||||
cross-product | |||||
PVectorDistance | distance | ||||
PVectorView | as-vector | ||||
PVectorisable | to-vector | ||||
PMutableVectorOps | normalise! | ||||
PMatrixOps | inverse | ||||
determinant | |||||
trace | |||||
PNegation | negate | ||||
PMatrixRank | rank | ||||
PSummable | element-sum | ||||
PExponent | element-pow | ||||
PSquare | square | ||||
PRowOperations | add-row | ||||
multiply-row | |||||
swap-rows | |||||
PMathsFunctions | abs | ||||
cosh | |||||
signum | |||||
sinh | |||||
log | |||||
cbrt | |||||
floor | |||||
round | |||||
log10 | |||||
tanh | |||||
sin | |||||
asin | |||||
to-degrees | |||||
acos | |||||
cos | |||||
exp | |||||
ceil | |||||
tan | |||||
to-radians | |||||
atan | |||||
sqrt | |||||
PMathsFunctionsMutable | signum! | ||||
asin! | |||||
floor! | |||||
sinh! | |||||
log! | |||||
cos! | |||||
cbrt! | |||||
ceil! | |||||
acos! | |||||
sqrt! | |||||
atan! | |||||
to-radians! | |||||
to-degrees! | |||||
cosh! | |||||
abs! | |||||
log10! | |||||
round! | |||||
tan! | |||||
sin! | |||||
tanh! | |||||
exp! | |||||
PElementCount | element-count | ||||
PFunctionalOperations | element-reduce | ||||
element-map! | |||||
element-map | |||||
element-seq | |||||
PMatrixPredicates | zero-matrix? | ||||
identity-matrix? | |||||
PGenericValues | generic-value | ||||
generic-one | |||||
generic-zero | |||||
PGenericOperations | generic-div | ||||
generic-negate | |||||
generic-mul | |||||
generic-add |