Exit
EndIf
EndFor
ú[k]→y
√(ù[2]^2/4-ù[3]+y)→r
If r=0 Then
√(3*ù[2]^2/4-2*ù[3]+2*√(y^2-4*ù[5]))→d
√(3*ù[2]^2/4-2*ù[3]-2*√(y^2-4*ù[5]))→e
Else
√(3*ù[2]^2/4-r^2-2*ù[3]+(4*ù[2]*ù[3]-8*ù[4]-ù[2]^3)/(4*r))→d
√(3*ù[2]^2/4-r^2-2*ù[3]-(4*ù[2]*ù[3]-8*ù[4]-ù[2]^3)/(4*r))→e
EndIf
{⁻ù[2]/4+r/2+d/2,⁻ù[2]/4+r/2-d/2,⁻ù[2]/4-r/2+e/2,⁻ù[2]/4-r/2-e/2}
EndFunc
coef():
coef(è,ý)
Func
©~coef(p,v) Make list of coefficents
p - polynomial
v - independent var
Local ù,é,ì
If getType(ý)≠"VAR":Return "p\coef:2nd arg must be a VAR"
If inString(string(è),"=")>0 Then
left(è)→é
Else
è→é
EndIf
é|ý=0→ù[1]
1→ì
Loop
(é,ý)→é
If getType(é)="NUM" and é=0:Exit
ì+1→ì
augment({(é|ý=0)/((ì-1)!)},ù)→ù
EndLoop
ù
EndFunc
evalrt():
evalrt(l)
Func
©~evalRt(ls) Evaluate Roots
ls - list of roots
Local i,n,o,s,f
If getType(l)≠"LIST": Return "p\evalRt:Arg must be a LIST"
dim(l)→n
{}→o
0→f
For i,1,n
If inString(string(l[i]),"=")>0 Then
If f=0 Then
l[i]→s
1→f
Else
s and l[i]→s
6 - 11