Benchmark summary

git hash: dc0f3d66ad7c48493f4110fc15621a7d0f817647

Hint: hover on method name to see an additional information
ProtocolMethodvectorzndarrayndarray-doublepersistent vectors
PImplementationsupports-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
PDimensionInfodimension-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
 
 
PIndexedAccessget-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
PIndexedSettingis-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
PIndexedSettingMutableset-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
PMatrixCloningclone
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
PTypeInfoelement-type
PMutableMatrixConstructionmutable-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
PZeroDimensionConstructionnew-scalar-array
42.35 ns
 
 
42.42 ns
 
 
43.01 ns
 
 
42.23 ns
 
 
PZeroDimensionAccessset-0d!
16.81 ns
 
 
21.50 ns
 
 
get-0d
13.42 ns
 
 
17.35 ns
 
 
19.15 ns
 
 
14.88 ns
 
 
PZeroDimensionSetset-0d
47.13 ns
 
 
47.43 ns
 
 
48.10 ns
 
 
47.86 ns
 
 
PSpecialisedConstructorsdiagonal-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
PCoercioncoerce-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
PBroadcastbroadcast
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
PBroadcastLikebroadcast-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
PConversionconvert-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
PReshapingreshape
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
 
PMatrixSlicesget-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
PSubVectorsubvector
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
PSliceViewget-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
PSliceSeqget-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
PSliceJoinjoin
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
PMatrixSubComponentsmain-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
PAssignmentassign-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
PMutableFillfill!
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
PDoubleArrayOutputas-double-array
to-double-array
PMatrixEqualitymatrix-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
PMatrixMultiplyelement-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
 
PMatrixProductsouter-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
 
PAddProductadd-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
 
PAddProductMutableadd-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
PAddScaledProductadd-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
 
PAddScaledProductMutableadd-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
PAddScaledadd-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
 
PAddScaledMutableadd-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
PMatrixDivideelement-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
 
PMatrixMultiplyMutableelement-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
PVectorTransformvector-transform!
vector-transform
PMatrixScalingpre-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
PMatrixMutableScalingpre-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
PMatrixAddmatrix-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
PMatrixAddMutablematrix-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
PSubMatrixsubmatrix
PComputeMatrixcompute-matrix
PTransposetranspose
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
PNumericalnumerical?
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
PVectorOpsnormalise
length-squared
length
vector-dot
PVectorCrosscross-product!
cross-product
PVectorDistancedistance
PVectorViewas-vector
PVectorisableto-vector
PMutableVectorOpsnormalise!
PMatrixOpsinverse
determinant
trace
PNegationnegate
PMatrixRankrank
PSummableelement-sum
PExponentelement-pow
PSquaresquare
PRowOperationsadd-row
multiply-row
swap-rows
PMathsFunctionsabs
cosh
signum
sinh
log
cbrt
floor
round
log10
tanh
sin
asin
to-degrees
acos
cos
exp
ceil
tan
to-radians
atan
sqrt
PMathsFunctionsMutablesignum!
asin!
floor!
sinh!
log!
cos!
cbrt!
ceil!
acos!
sqrt!
atan!
to-radians!
to-degrees!
cosh!
abs!
log10!
round!
tan!
sin!
tanh!
exp!
PElementCountelement-count
PFunctionalOperationselement-reduce
element-map!
element-map
element-seq
PMatrixPredicateszero-matrix?
identity-matrix?
PGenericValuesgeneric-value
generic-one
generic-zero
PGenericOperationsgeneric-div
generic-negate
generic-mul
generic-add