mirror of
https://github.com/revarbat/BOSL2.git
synced 2025-08-05 23:17:26 +02:00
Minor edits
This commit is contained in:
10
math.scad
10
math.scad
@@ -686,7 +686,7 @@ function linear_solve(A,b) =
|
|||||||
m = len(A),
|
m = len(A),
|
||||||
n = len(A[0])
|
n = len(A[0])
|
||||||
)
|
)
|
||||||
assert(is_vector(b,m) || is_matrix(b,m),"Incompatible matrix and right hand side")
|
assert(is_vector(b,m) || is_matrix(b,m),"Invalid right hand side or incompatible with the matrix")
|
||||||
let (
|
let (
|
||||||
qr = m<n? qr_factor(transpose(A)) : qr_factor(A),
|
qr = m<n? qr_factor(transpose(A)) : qr_factor(A),
|
||||||
maxdim = max(n,m),
|
maxdim = max(n,m),
|
||||||
@@ -745,7 +745,13 @@ function _qr_factor(A,Q, column, m, n) =
|
|||||||
u = x - concat([alpha],repeat(0,m-1)),
|
u = x - concat([alpha],repeat(0,m-1)),
|
||||||
v = alpha==0 ? u : u / norm(u),
|
v = alpha==0 ? u : u / norm(u),
|
||||||
Qc = ident(len(x)) - 2*outer_product(v,v),
|
Qc = ident(len(x)) - 2*outer_product(v,v),
|
||||||
Qf = [for(i=[0:m-1]) [for(j=[0:m-1]) i<column || j<column ? (i==j ? 1 : 0) : Qc[i-column][j-column]]]
|
Qf = [for(i=[0:m-1])
|
||||||
|
[for(j=[0:m-1])
|
||||||
|
i<column || j<column
|
||||||
|
? (i==j ? 1 : 0)
|
||||||
|
: Qc[i-column][j-column]
|
||||||
|
]
|
||||||
|
]
|
||||||
)
|
)
|
||||||
_qr_factor(Qf*A, Q*Qf, column+1, m, n);
|
_qr_factor(Qf*A, Q*Qf, column+1, m, n);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user