eyeling 1.34.3 → 1.34.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -9
- package/docs/eyelang-guide.md +5 -10
- package/docs/eyelang-language-reference.md +31 -5
- package/examples/eyelang/bayes-therapy.pl +4 -4
- package/examples/eyelang/output/reusable-builtins.pl +5 -0
- package/examples/eyelang/output/term-tools.pl +6 -0
- package/examples/eyelang/reusable-builtins.pl +32 -0
- package/examples/eyelang/term-tools.pl +23 -0
- package/lib/eyelang/builtins/arithmetic.js +19 -6
- package/lib/eyelang/builtins/control.js +12 -0
- package/lib/eyelang/builtins/lists.js +146 -7
- package/lib/eyelang/builtins/registry.js +2 -3
- package/lib/eyelang/builtins/strings.js +165 -1
- package/lib/eyelang/builtins/terms.js +66 -0
- package/package.json +1 -1
- package/test/eyelang/conformance/README.md +1 -1
- package/test/eyelang/conformance/cases/extension/036_reusable_numeric_builtins.pl +10 -0
- package/test/eyelang/conformance/cases/extension/037_reusable_list_builtins.pl +11 -0
- package/test/eyelang/conformance/cases/extension/038_reusable_string_builtins.pl +12 -0
- package/test/eyelang/conformance/cases/extension/039_reusable_term_control_builtins.pl +11 -0
- package/test/eyelang/conformance/expected/extension/036_reusable_numeric_builtins.out +8 -0
- package/test/eyelang/conformance/expected/extension/037_reusable_list_builtins.out +9 -0
- package/test/eyelang/conformance/expected/extension/038_reusable_string_builtins.out +10 -0
- package/test/eyelang/conformance/expected/extension/039_reusable_term_control_builtins.out +6 -0
- package/examples/eyelang/collatz-1000.pl +0 -14
- package/examples/eyelang/complex-matrix-stability.pl +0 -45
- package/examples/eyelang/gcd-bezout-identity.pl +0 -48
- package/examples/eyelang/goldbach-1000.pl +0 -185
- package/examples/eyelang/kaprekar.pl +0 -32
- package/examples/eyelang/matrix.pl +0 -296
- package/examples/eyelang/output/collatz-1000.pl +0 -1000
- package/examples/eyelang/output/complex-matrix-stability.pl +0 -5
- package/examples/eyelang/output/gcd-bezout-identity.pl +0 -36
- package/examples/eyelang/output/goldbach-1000.pl +0 -667
- package/examples/eyelang/output/kaprekar.pl +0 -8
- package/examples/eyelang/output/matrix.pl +0 -10
- package/lib/eyelang/builtins/matrix.js +0 -226
- package/lib/eyelang/builtins/number-theory.js +0 -114
- package/test/eyelang/conformance/cases/extension/036_extended_gcd.pl +0 -3
- package/test/eyelang/conformance/cases/extension/037_collatz_trajectory.pl +0 -3
- package/test/eyelang/conformance/cases/extension/038_kaprekar_steps.pl +0 -3
- package/test/eyelang/conformance/cases/extension/039_goldbach_pair.pl +0 -3
- package/test/eyelang/conformance/cases/extension/040_matrix_operations.pl +0 -5
- package/test/eyelang/conformance/expected/extension/036_extended_gcd.out +0 -1
- package/test/eyelang/conformance/expected/extension/037_collatz_trajectory.out +0 -1
- package/test/eyelang/conformance/expected/extension/038_kaprekar_steps.out +0 -1
- package/test/eyelang/conformance/expected/extension/039_goldbach_pair.out +0 -2
- package/test/eyelang/conformance/expected/extension/040_matrix_operations.out +0 -3
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
% Kaprekar's constant demo, adapted from Eyelet's input/kaprekar.pl.
|
|
2
|
-
%
|
|
3
|
-
% This is deliberately a rule-level example, not a native builtin. It extracts
|
|
4
|
-
% four digits, sorts them, subtracts ascending from descending, and recurses
|
|
5
|
-
% until Kaprekar's constant 6174 is reached. The sample set is small so the
|
|
6
|
-
% example remains a millisecond-scale demo in the normal test suite.
|
|
7
|
-
|
|
8
|
-
% Output declarations: materialize/2 selects the relations written to this example's golden output.
|
|
9
|
-
materialize(constant, 2).
|
|
10
|
-
materialize(kaprekarSteps, 2).
|
|
11
|
-
materialize(reachesConstant, 2).
|
|
12
|
-
|
|
13
|
-
% Program structure: facts set up the scenario, and rules derive the materialized conclusions.
|
|
14
|
-
memoize(kaprekar, 3).
|
|
15
|
-
|
|
16
|
-
% Derivation rules: each rule below contributes one logical step toward the displayed results.
|
|
17
|
-
recursion_count(N, Count) :-
|
|
18
|
-
kaprekar_steps(N, Count).
|
|
19
|
-
|
|
20
|
-
sample(3524).
|
|
21
|
-
sample(2111).
|
|
22
|
-
sample(9831).
|
|
23
|
-
sample(6174).
|
|
24
|
-
constant(kaprekar, 6174).
|
|
25
|
-
|
|
26
|
-
kaprekarSteps(N, Count) :-
|
|
27
|
-
sample(N),
|
|
28
|
-
recursion_count(N, Count).
|
|
29
|
-
|
|
30
|
-
reachesConstant(kaprekar, N) :-
|
|
31
|
-
sample(N),
|
|
32
|
-
recursion_count(N, _Count).
|
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
% Matrix operations example, adapted from Eyelet's input/matrix.pl.
|
|
2
|
-
%
|
|
3
|
-
% The operations and sample cases follow the Trealla output reference from
|
|
4
|
-
% Eyelet: determinant, inversion, triangular inversion, multiplication, sum,
|
|
5
|
-
% and Cholesky decomposition. Results are derived by generic matrix rules, not
|
|
6
|
-
% asserted as output facts.
|
|
7
|
-
|
|
8
|
-
% --- small list helpers -----------------------------------------------------
|
|
9
|
-
|
|
10
|
-
% Output declarations: materialize/2 selects the relations written to this example's golden output.
|
|
11
|
-
materialize(result, 2).
|
|
12
|
-
materialize(checksConsistentWithTreallaReference, 2).
|
|
13
|
-
|
|
14
|
-
% Program structure: facts set up the scenario, and rules derive the materialized conclusions.
|
|
15
|
-
nth0(0, [H|_T], H).
|
|
16
|
-
% Derivation rules: each rule below contributes one logical step toward the displayed results.
|
|
17
|
-
nth0(N, [_H|T], V) :-
|
|
18
|
-
gt(N, 0),
|
|
19
|
-
sub(N, 1, N1),
|
|
20
|
-
nth0(N1, T, V).
|
|
21
|
-
|
|
22
|
-
flatten_matrix([], []).
|
|
23
|
-
flatten_matrix([Row|Rows], Flat) :-
|
|
24
|
-
flatten_matrix(Rows, Tail),
|
|
25
|
-
append(Row, Tail, Flat).
|
|
26
|
-
|
|
27
|
-
list0(0, []).
|
|
28
|
-
list0(N, [0|T]) :-
|
|
29
|
-
gt(N, 0),
|
|
30
|
-
sub(N, 1, N1),
|
|
31
|
-
list0(N1, T).
|
|
32
|
-
|
|
33
|
-
take(0, Rest, [], Rest).
|
|
34
|
-
take(N, [H|T], [H|Row], Rest) :-
|
|
35
|
-
gt(N, 0),
|
|
36
|
-
sub(N, 1, N1),
|
|
37
|
-
take(N1, T, Row, Rest).
|
|
38
|
-
|
|
39
|
-
identify_rows([], _N, []).
|
|
40
|
-
identify_rows(Elems, N, [Row|Rows]) :-
|
|
41
|
-
take(N, Elems, Row, Rest),
|
|
42
|
-
identify_rows(Rest, N, Rows).
|
|
43
|
-
|
|
44
|
-
get_v(I, J, N, Flat, V) :-
|
|
45
|
-
mul(I, N, IN),
|
|
46
|
-
add(IN, J, E),
|
|
47
|
-
nth0(E, Flat, V).
|
|
48
|
-
|
|
49
|
-
set_v(I, J, N, Flat, NewFlat, V) :-
|
|
50
|
-
mul(I, N, IN),
|
|
51
|
-
add(IN, J, E),
|
|
52
|
-
set_nth0(E, Flat, V, NewFlat).
|
|
53
|
-
|
|
54
|
-
% --- basic matrix operations ------------------------------------------------
|
|
55
|
-
|
|
56
|
-
row_sum([], [], []).
|
|
57
|
-
row_sum([A|As], [B|Bs], [C|Cs]) :-
|
|
58
|
-
add(A, B, C),
|
|
59
|
-
row_sum(As, Bs, Cs).
|
|
60
|
-
|
|
61
|
-
matrix_sum([[], []], []).
|
|
62
|
-
matrix_sum([[RowA|RowsA], [RowB|RowsB]], [Row|Rows]) :-
|
|
63
|
-
row_sum(RowA, RowB, Row),
|
|
64
|
-
matrix_sum([RowsA, RowsB], Rows).
|
|
65
|
-
|
|
66
|
-
row_diff([], [], []).
|
|
67
|
-
row_diff([A|As], [B|Bs], [C|Cs]) :-
|
|
68
|
-
sub(A, B, C),
|
|
69
|
-
row_diff(As, Bs, Cs).
|
|
70
|
-
|
|
71
|
-
matrix_diff([], [], []).
|
|
72
|
-
matrix_diff([RowA|RowsA], [RowB|RowsB], [Row|Rows]) :-
|
|
73
|
-
row_diff(RowA, RowB, Row),
|
|
74
|
-
matrix_diff(RowsA, RowsB, Rows).
|
|
75
|
-
|
|
76
|
-
row_mult_scal([], _V, []).
|
|
77
|
-
row_mult_scal([A|As], V, [B|Bs]) :-
|
|
78
|
-
mul(A, V, B),
|
|
79
|
-
row_mult_scal(As, V, Bs).
|
|
80
|
-
|
|
81
|
-
matrix_mult_scal([], _V, []).
|
|
82
|
-
matrix_mult_scal([Row|Rows], V, [Scaled|ScaledRows]) :-
|
|
83
|
-
row_mult_scal(Row, V, Scaled),
|
|
84
|
-
matrix_mult_scal(Rows, V, ScaledRows).
|
|
85
|
-
|
|
86
|
-
row_div_scal([], _V, []).
|
|
87
|
-
row_div_scal([A|As], V, [B|Bs]) :-
|
|
88
|
-
div(A, V, B),
|
|
89
|
-
row_div_scal(As, V, Bs).
|
|
90
|
-
|
|
91
|
-
matrix_div_scal([], _V, []).
|
|
92
|
-
matrix_div_scal([Row|Rows], V, [Scaled|ScaledRows]) :-
|
|
93
|
-
row_div_scal(Row, V, Scaled),
|
|
94
|
-
matrix_div_scal(Rows, V, ScaledRows).
|
|
95
|
-
|
|
96
|
-
transpose_matrix([], []).
|
|
97
|
-
transpose_matrix([[]|_Rows], []).
|
|
98
|
-
transpose_matrix(Matrix, [Column|Columns]) :-
|
|
99
|
-
first_column(Matrix, Column, Rest),
|
|
100
|
-
transpose_matrix(Rest, Columns).
|
|
101
|
-
|
|
102
|
-
first_column([], [], []).
|
|
103
|
-
first_column([[H|T]|Rows], [H|Hs], [T|Ts]) :-
|
|
104
|
-
first_column(Rows, Hs, Ts).
|
|
105
|
-
|
|
106
|
-
dot_product([], [], 0).
|
|
107
|
-
dot_product([X|Xs], [Y|Ys], D) :-
|
|
108
|
-
dot_product(Xs, Ys, Rest),
|
|
109
|
-
mul(X, Y, XY),
|
|
110
|
-
add(XY, Rest, D).
|
|
111
|
-
|
|
112
|
-
row_multiply(_Transposed, [], []).
|
|
113
|
-
row_multiply(Transposed, [Row|Rows], [OutRow|OutRows]) :-
|
|
114
|
-
row_multiply_columns(Transposed, Row, OutRow),
|
|
115
|
-
row_multiply(Transposed, Rows, OutRows).
|
|
116
|
-
|
|
117
|
-
row_multiply_columns([], _Row, []).
|
|
118
|
-
row_multiply_columns([Column|Columns], Row, [D|Ds]) :-
|
|
119
|
-
dot_product(Row, Column, D),
|
|
120
|
-
row_multiply_columns(Columns, Row, Ds).
|
|
121
|
-
|
|
122
|
-
matrix_multiply([X, Y], M) :-
|
|
123
|
-
transpose_matrix(Y, T),
|
|
124
|
-
row_multiply(T, X, M).
|
|
125
|
-
|
|
126
|
-
% --- Cholesky decomposition -------------------------------------------------
|
|
127
|
-
|
|
128
|
-
cholesky_decomposition(A, L) :-
|
|
129
|
-
flatten_matrix(A, FlatA),
|
|
130
|
-
length(FlatA, FlatLen),
|
|
131
|
-
list0(FlatLen, Work0),
|
|
132
|
-
length(A, N),
|
|
133
|
-
cholesky_i(0, N, FlatA, Work0, Work),
|
|
134
|
-
identify_rows(Work, N, L).
|
|
135
|
-
|
|
136
|
-
cholesky_i(I, N, _A, L, L) :-
|
|
137
|
-
ge(I, N).
|
|
138
|
-
cholesky_i(I, N, A, L, LOut) :-
|
|
139
|
-
lt(I, N),
|
|
140
|
-
cholesky_j(0, I, N, A, L, L1),
|
|
141
|
-
add(I, 1, I1),
|
|
142
|
-
cholesky_i(I1, N, A, L1, LOut).
|
|
143
|
-
|
|
144
|
-
cholesky_j(J, I, N, A, L, LOut) :-
|
|
145
|
-
eq(J, I),
|
|
146
|
-
cholesky_k(0, I, I, N, 0, S, L),
|
|
147
|
-
get_v(I, I, N, A, Aii),
|
|
148
|
-
sub(Aii, S, V2),
|
|
149
|
-
pow(V2, 0.5, V),
|
|
150
|
-
set_v(I, I, N, L, LOut, V).
|
|
151
|
-
cholesky_j(J, I, N, A, L, LOut) :-
|
|
152
|
-
lt(J, I),
|
|
153
|
-
cholesky_k(0, J, I, N, 0, S, L),
|
|
154
|
-
get_v(I, J, N, A, Aij),
|
|
155
|
-
get_v(J, J, N, L, Ljj),
|
|
156
|
-
sub(Aij, S, Numerator),
|
|
157
|
-
div(Numerator, Ljj, V),
|
|
158
|
-
set_v(I, J, N, L, L1, V),
|
|
159
|
-
add(J, 1, J1),
|
|
160
|
-
cholesky_j(J1, I, N, A, L1, LOut).
|
|
161
|
-
|
|
162
|
-
cholesky_k(K, J, _I, _N, S, S, _L) :-
|
|
163
|
-
ge(K, J).
|
|
164
|
-
cholesky_k(K, J, I, N, S0, S, L) :-
|
|
165
|
-
lt(K, J),
|
|
166
|
-
get_v(I, K, N, L, Lik),
|
|
167
|
-
get_v(J, K, N, L, Ljk),
|
|
168
|
-
mul(Lik, Ljk, Product),
|
|
169
|
-
add(S0, Product, S1),
|
|
170
|
-
add(K, 1, K1),
|
|
171
|
-
cholesky_k(K1, J, I, N, S1, S, L).
|
|
172
|
-
|
|
173
|
-
% --- determinant and inversion ---------------------------------------------
|
|
174
|
-
|
|
175
|
-
get_diagonal(Matrix, Diagonal) :-
|
|
176
|
-
length(Matrix, N),
|
|
177
|
-
get_diag(0, N, Matrix, Diagonal).
|
|
178
|
-
|
|
179
|
-
get_diag(I, N, _Matrix, []) :-
|
|
180
|
-
ge(I, N).
|
|
181
|
-
get_diag(I, N, Matrix, [V|Vs]) :-
|
|
182
|
-
lt(I, N),
|
|
183
|
-
nth0(I, Matrix, Row),
|
|
184
|
-
nth0(I, Row, V),
|
|
185
|
-
add(I, 1, I1),
|
|
186
|
-
get_diag(I1, N, Matrix, Vs).
|
|
187
|
-
|
|
188
|
-
prod_list([], 1).
|
|
189
|
-
prod_list([A|As], P) :-
|
|
190
|
-
prod_list(As, P0),
|
|
191
|
-
mul(A, P0, P).
|
|
192
|
-
|
|
193
|
-
determinant(A, Det) :-
|
|
194
|
-
cholesky_decomposition(A, L),
|
|
195
|
-
get_diagonal(L, Diagonal),
|
|
196
|
-
prod_list(Diagonal, DetL),
|
|
197
|
-
mul(DetL, DetL, Det).
|
|
198
|
-
|
|
199
|
-
matrix_inv_triang(L, Inv) :-
|
|
200
|
-
length(L, N),
|
|
201
|
-
build_inv_rows(0, N, L, [], Inv).
|
|
202
|
-
|
|
203
|
-
build_inv_rows(I, N, _L, _Previous, []) :-
|
|
204
|
-
ge(I, N).
|
|
205
|
-
build_inv_rows(I, N, L, Previous, [Row|Rows]) :-
|
|
206
|
-
lt(I, N),
|
|
207
|
-
build_inv_row(0, N, I, L, Previous, Row),
|
|
208
|
-
append(Previous, [Row], NextPrevious),
|
|
209
|
-
add(I, 1, I1),
|
|
210
|
-
build_inv_rows(I1, N, L, NextPrevious, Rows).
|
|
211
|
-
|
|
212
|
-
build_inv_row(J, N, _I, _L, _Previous, []) :-
|
|
213
|
-
ge(J, N).
|
|
214
|
-
build_inv_row(J, N, I, L, Previous, [V|Vs]) :-
|
|
215
|
-
lt(J, N),
|
|
216
|
-
lower_inverse_value(I, J, N, L, Previous, V),
|
|
217
|
-
add(J, 1, J1),
|
|
218
|
-
build_inv_row(J1, N, I, L, Previous, Vs).
|
|
219
|
-
|
|
220
|
-
lower_inverse_value(I, J, _N, _L, _Previous, 0) :-
|
|
221
|
-
gt(J, I).
|
|
222
|
-
lower_inverse_value(I, J, N, L, _Previous, V) :-
|
|
223
|
-
eq(I, J),
|
|
224
|
-
nth0(I, L, Row),
|
|
225
|
-
nth0(I, Row, Diagonal),
|
|
226
|
-
div(1.0, Diagonal, V).
|
|
227
|
-
lower_inverse_value(I, J, N, L, Previous, V) :-
|
|
228
|
-
lt(J, I),
|
|
229
|
-
sum_lower_inverse(J, I, J, N, L, Previous, 0, Sum),
|
|
230
|
-
neg(Sum, NegSum),
|
|
231
|
-
nth0(I, L, Row),
|
|
232
|
-
nth0(I, Row, Diagonal),
|
|
233
|
-
div(NegSum, Diagonal, V).
|
|
234
|
-
|
|
235
|
-
sum_lower_inverse(K, I, _J, _N, _L, _Previous, Sum, Sum) :-
|
|
236
|
-
ge(K, I).
|
|
237
|
-
sum_lower_inverse(K, I, J, N, L, Previous, Sum0, Sum) :-
|
|
238
|
-
lt(K, I),
|
|
239
|
-
nth0(I, L, RowI),
|
|
240
|
-
nth0(K, RowI, Lik),
|
|
241
|
-
nth0(K, Previous, InvRowK),
|
|
242
|
-
nth0(J, InvRowK, InvKj),
|
|
243
|
-
mul(Lik, InvKj, Product),
|
|
244
|
-
add(Sum0, Product, Sum1),
|
|
245
|
-
add(K, 1, K1),
|
|
246
|
-
sum_lower_inverse(K1, I, J, N, L, Previous, Sum1, Sum).
|
|
247
|
-
|
|
248
|
-
matrix_inversion(A, B) :-
|
|
249
|
-
cholesky_decomposition(A, L),
|
|
250
|
-
matrix_inv_triang(L, LI),
|
|
251
|
-
transpose_matrix(LI, LIT),
|
|
252
|
-
matrix_multiply([LIT, LI], B).
|
|
253
|
-
|
|
254
|
-
% --- sample cases mirroring Eyelet's Trealla reference output ---------------
|
|
255
|
-
|
|
256
|
-
case(det3, determinant, [[2, -1, 0], [-1, 2, -1], [0, -1, 2]]).
|
|
257
|
-
case(inv3, matrix_inversion, [[2, -1, 0], [-1, 2, -1], [0, -1, 2]]).
|
|
258
|
-
case(inv4, matrix_inversion, [[18, 22, 54, 42], [22, 70, 86, 62], [54, 86, 174, 134], [42, 62, 134, 106]]).
|
|
259
|
-
case(invtri3, matrix_inv_triang, [[2, 0, 0], [-1, 2, 0], [0, -1, 2]]).
|
|
260
|
-
case(mul_small, matrix_multiply, [[[1, 2], [3, 4], [5, 6]], [[1, 1, 1], [1, 1, 1]]]).
|
|
261
|
-
case(mul_identity_check, matrix_multiply, [[[18, 22, 54, 42], [22, 70, 86, 62], [54, 86, 174, 134], [42, 62, 134, 106]], [[2.515624999999984, 0.4843749999999933, -1.296874999999973, 0.3593749999999767], [0.4843749999999933, 0.1406249999999978, -0.3281249999999918, 0.1406249999999936], [-1.296874999999973, -0.3281249999999918, 1.015624999999971, -0.5781249999999781], [0.3593749999999767, 0.1406249999999936, -0.5781249999999781, 0.5156249999999853]]]).
|
|
262
|
-
case(sum_small, matrix_sum, [[[1, 2], [3, 4], [5, 6]], [[1, 2], [3, 4], [5, 6]]]).
|
|
263
|
-
case(chol3, cholesky_decomposition, [[25, 15, -5], [15, 18, 0], [-5, 0, 11]]).
|
|
264
|
-
case(chol4, cholesky_decomposition, [[18, 22, 54, 42], [22, 70, 86, 62], [54, 86, 174, 134], [42, 62, 134, 106]]).
|
|
265
|
-
|
|
266
|
-
result(Case, determinant(Matrix, Det)) :-
|
|
267
|
-
case(Case, determinant, Matrix),
|
|
268
|
-
determinant(Matrix, Det).
|
|
269
|
-
|
|
270
|
-
result(Case, matrix_inversion(Matrix, Inverse)) :-
|
|
271
|
-
case(Case, matrix_inversion, Matrix),
|
|
272
|
-
matrix_inversion(Matrix, Inverse).
|
|
273
|
-
|
|
274
|
-
result(Case, matrix_inv_triang(Matrix, Inverse)) :-
|
|
275
|
-
case(Case, matrix_inv_triang, Matrix),
|
|
276
|
-
matrix_inv_triang(Matrix, Inverse).
|
|
277
|
-
|
|
278
|
-
result(Case, matrix_multiply(Inputs, Product)) :-
|
|
279
|
-
case(Case, matrix_multiply, Inputs),
|
|
280
|
-
matrix_multiply(Inputs, Product).
|
|
281
|
-
|
|
282
|
-
result(Case, matrix_sum(Inputs, Sum)) :-
|
|
283
|
-
case(Case, matrix_sum, Inputs),
|
|
284
|
-
matrix_sum(Inputs, Sum).
|
|
285
|
-
|
|
286
|
-
result(Case, cholesky_decomposition(Matrix, L)) :-
|
|
287
|
-
case(Case, cholesky_decomposition, Matrix),
|
|
288
|
-
cholesky_decomposition(Matrix, L).
|
|
289
|
-
|
|
290
|
-
checksConsistentWithTreallaReference(matrix, true) :-
|
|
291
|
-
determinant([[2, -1, 0], [-1, 2, -1], [0, -1, 2]], Det),
|
|
292
|
-
gt(Det, 3.9999),
|
|
293
|
-
lt(Det, 4.0001),
|
|
294
|
-
matrix_multiply([[[1, 2], [3, 4], [5, 6]], [[1, 1, 1], [1, 1, 1]]], [[3, 3, 3], [7, 7, 7], [11, 11, 11]]),
|
|
295
|
-
matrix_sum([[[1, 2], [3, 4], [5, 6]], [[1, 2], [3, 4], [5, 6]]], [[2, 4], [6, 8], [10, 12]]),
|
|
296
|
-
cholesky_decomposition([[25, 15, -5], [15, 18, 0], [-5, 0, 11]], [[5.0, 0, 0], [3.0, 3.0, 0], [-1.0, 1.0, 3.0]]).
|