% different versions of algorithms to compute the number of solutions to a system
IMPORTING poly_systems, matrices@query_coeff
a,r,g : VAR [nat->int]
p : VAR [nat->[nat->int]]
relseq: VAR [nat->RealOrder]
n : VAR [nat->nat]
d,i,j,k : VAR nat
m: VAR posnat %m : VAR posnat
x,y,c,b : VAR real
babove,bbelow,bbelow2,babove2: VAR bool
RelF6,TQRow: VAR [nat->subrange(0,5)]
% ORIGINAL ALGORITHM ---- Others should use this signature. % % starm_tarski_solver_slow_basic(k,a,(m|a(m)/=0),p, % (n|FORALL (i:upto(k)):p(i)(n(i))/=0),RelF6): % {r:real | r = NSol_all(k,a,m,p,n,RelF6) AND rational_pred(r) AND integer_pred(r)} = % LET ii = base_n_to_nat(6,RelF6,k) IN % dot(row(tensor_power_alt(A63,k+1))(ii),col(TQ_vect3k(k,a,m,p,n))(0))
sturm_tarski_faster(k,a,(m|a(m)/=0),p,
(n|FORALL (i:upto(k)):p(i)(n(i))/=0),RelF6):
{r:real | r = NSol_all(k,a,m,p,n,RelF6) AND rational_pred(r) AND integer_pred(r)} = LET EntFun = entry_fun(k, rows_fun(RelF6, k)) IN IF k=0 THEN sturm_tarski_solver_slow_basic(k,a,m,p,n,RelF6) ELSE dot_tail_sum2plus(k+1, EntFun, TQlist_fun(k,a,m,p,n), 0, 0, base_list(3, 0, k+1)) ENDIF
T1(n:posnat, i, j:nat): real = entry(tensor_power_alt(A63, n))(i,j)
T2(M:PosFullMatrix, i, j:nat): real = entry(M)(i,j)
Test1(n:posnat, j:nat): RECURSIVE real = if j=0 THEN T1(n, j, j) ELSELET ent = T1(n, j, j) in
Test1(n, j-1) ENDIF MEASURE j
Test2recurse(M:PosFullMatrix, j:nat): RECURSIVE real= IF j=0 THEN T2(M, j, j) ELSELET ent = T2(M, j, j) IN
Test2recurse(M, j-1) ENDIF MEASURE j
Test2(n: posnat, j:nat): real = LET M = (tensor_power_alt(A63, n)) IN
Test2recurse(M, j)
END system_solvers
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.