RosettaCodeData/Task/Cholesky-decomposition/Excel/cholesky-decomposition.excel
2026-04-30 12:34:36 -04:00

38 lines
771 B
Text

=LAMBDA(A,
LET(
r, ROWS(A),
sqa, SQRT(INDEX(A,1,1)),
IF(
r=1,
sqa,
REDUCE(
VSTACK(sqa, DROP(TAKE(A,,1),1)/sqa),
SEQUENCE(r-1,,2),
LAMBDA(s, t,
LET(
diag, SQRT(INDEX(A,t,t) - SUMSQ(INDEX(s,t))),
HSTACK(
s,
VSTACK(
EXPAND(0,t-1,1,0),
IF(
t=r,
diag,
REDUCE(
diag,
SEQUENCE(r-t,1,t+1),
LAMBDA(x,y,
VSTACK(
x,
(INDEX(A,y,t) - SUM(INDEX(s,t)*INDEX(s,y))) / diag
)
)
)
)
)
)
)
)
)
)
)