>
> After using SPAD for a while now, I think I've come across a few
> compiler issues, leading either to compilation failure or to programs that 
> crash ("system error").
> In all cases I was able to circumvent them by rewriting the expression, 
> interchanging independent lines etc.
> One "system error" was for example produced by using
> monomial(1,0)$UnivariateTaylorSeries(Expression(Integer),'x,0)
> in a longer expression and I was able to circumvent this by just using
> 1$UnivariateTaylorSeries(Expression(Integer),'x,0)
>
> Ideally I should probably produce minimal working examples and put them on 
> the bugtracker,
> but I think some of these just occur when the code is sufficiently 
> complex. I know that there is
> little manpower to fix these things, but it might still be worth to 
> collect the issues? Things like this
> make me a little nervous about investing development time. What happens 
> when I come across
> something without a workaround or there is a very deep and subtle bug? I 
> know that in the end
> this is my risk to take, but from your point of view, how concerned should 
> I be? FriCAS/Axiom
> have been around for a while and used for hundreds of packages, so I'm 
> probably too concerned.
>
> Have there been thoughts or plans of porting the FriCAS SPAD code 
> completely to Aldor? As far
> as I can tell Aldor is unmaintained, so this might not be a good idea in 
> the long run.
>
> The most problematic issue for me right now is that using ")compile 
> file.spad" multiple times
> without ")clear all" in-between will completely break things. For example 
> something like:
>
> )co mypackage
> test := sqrt(x)
> subst(test, x=0)
>
> gives sqrt(0) as it should, but once I use )co mypackage again
> it no longer substitutes x=0 and just returns sqrt(x). This then 
> completely breaks the functionality in the package.
> A fix for this is to use ")clear all" in between, or to redefine test. Is 
> this "intended" or known behavior? I've had
> similar issues before where ")clear completely" was necessary.
>
> I've been able to produce a somewhat minimal example for this particular 
> issue (see test.input and ptest.spad below):
>
> )read test.input
> test := sqrt(x)
> subst(test,x=0) -- works
>
> )co ptest
> subst(test,x=0) -- fails
>
> (Yes the matrix definition in test.input is necessary for this bug to 
> happen)
>
> Thanks and best wishes,
> Tobias
>


ptest.spad:

 )abbrev package EMPTY EmptyPackage 
EmptyPackage() : Exports == Implementation where
    Exports == with
        ident: Integer -> Integer

    Implementation ==> add
        ident(x) == x


test.input:

)clear all
 
)compile ptest.spad 

amat := matrix [[0, 0, 0, 0, 0, 0, 0, 0, 0], [x1/(sqrt(-(t*x1))*sqrt(4 - 
t*x1)), -(x1/(-4 + t*x1)), 0, 0, 0, 0, 0, 0,  _
  0], [(sqrt(-(t*x3))*sqrt(4 - t*x3))/(t*(-4 + t*x3)), 0, -(x3/(-4 + 
t*x3)), 0, 0, 0, 0, 0, 0],  _
 [(sqrt(-(t*x2))*sqrt(4 - t*x2))/(t*(-4 + t*x2)), 0, 0, -(x2/(-4 + t*x2)), 
0, 0, 0, 0, 0],  _
 [0, 0, (t*x3^2)/((-(t*x3))^(3/2)*sqrt(4 - t*x3)), 0, 0, 0, 0, 0, 0],  _
 [0, (t*x1^2)/((-(t*x1))^(3/2)*sqrt(4 - t*x1)), 0, 0, 0, 0, 0, 0, 0],  _
 [0, 0, x3/(sqrt(-(t*x3))*sqrt(4 - t*x3)), (t*x2^2)/((-(t*x2))^(3/2)*sqrt(4 
- t*x2)), 0, 0, 0, 0, 0],  _
 [0, x1/(sqrt(-(t*x1))*sqrt(4 - t*x1)), 0, (t*x2^2)/((-(t*x2))^(3/2)*sqrt(4 
- t*x2)), 0, 0, 0, 0, 0],  _
 [0, (2*(-4 + t*x1)*x3)/(sqrt(4 - t*x1)*sqrt(-(t*x3))*sqrt(t*(-4*x1 + 4*x2 
- 4*x3 + t*x1*x3))) -  _
   (2*(-4 + t*x1)*x2*sqrt(-(t*x3)))/(t*sqrt(4 - t*x1)*(x1 - x2)* _
     sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))) + (2*x1*(-4 + 
t*x2)*sqrt(-(t*x3)))/ _
    (t*sqrt(4 - t*x1)*(x1 - x2)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  _
  (2*sqrt(-(t*x1))*(-4 + t*x2)*x3)/(t*(-x2 + x3)*sqrt(4 - t*x3)* _
     sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))) - (2*x1*sqrt(4 - t*x3))/ _
    (sqrt(-(t*x1))*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))) - 
(2*sqrt(-(t*x1))*x2*(-4 + t*x3))/ _
    (t*(-x2 + x3)*sqrt(4 - t*x3)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  
_
  (-2*sqrt(-(t*x1))*x2*(-4 + t*x2)*x3)/(sqrt(-(t*x2))*sqrt(4 - t*x2)*(x2 - 
x3)*sqrt(-(t*x3))* _
     sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))) + (2*x1*sqrt(-(t*x2))*sqrt(4 
- t*x2)*sqrt(-(t*x3)))/ _
    (t*sqrt(-(t*x1))*(x1 - x2)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))) -  _
   (2*sqrt(-(t*x1))*(4*x1*x2*sqrt(-(t*x3)) - 8*x2^2*sqrt(-(t*x3)) + 
t*x2^3*sqrt(-(t*x3)) +  _
      4*x2*x3*sqrt(-(t*x3)) - 
t*x1*x2*x3*sqrt(-(t*x3))))/(t*sqrt(-(t*x2))*(-x1 + x2)*sqrt(4 - t*x2)* _
     (x2 - x3)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  _
  (sqrt(-(t*x1))*(x1 - x2)*sqrt(-(t*x3)))/(t*(x1 - x2 + x3)*sqrt(t*(-4*x1 + 
4*x2 - 4*x3 + t*x1*x3))) -  _
   (sqrt(-(t*x1))*x2*(-(t*x3))^(3/2))/(t^2*x3*(x1 - x2 + x3)*sqrt(t*(-4*x1 
+ 4*x2 - 4*x3 + t*x1*x3))) -  _
   (x1*sqrt(-(t*x3))*(-x2 + x3))/(sqrt(-(t*x1))*(x1 - x2 + 
x3)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  _
  (sqrt(-(t*x1))*(x1 - x2)*sqrt(-(t*x3)))/(t*(x1 - x2 + x3)*sqrt(t*(-4*x1 + 
4*x2 - 4*x3 + t*x1*x3))) -  _
   (sqrt(-(t*x1))*x2*(-(t*x3))^(3/2))/(t^2*x3*(x1 - x2 + x3)*sqrt(t*(-4*x1 
+ 4*x2 - 4*x3 + t*x1*x3))) -  _
   (x1*sqrt(-(t*x3))*(-x2 + x3))/(sqrt(-(t*x1))*(x1 - x2 + 
x3)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  _
  -((sqrt(-(t*x1))*(x1 - x2)*sqrt(-(t*x3)))/(t*(x1 - x2 + x3)*sqrt(t*(-4*x1 
+ 4*x2 - 4*x3 + t*x1*x3)))) +  _
   (sqrt(-(t*x1))*x2*(-(t*x3))^(3/2))/(t^2*x3*(x1 - x2 + x3)*sqrt(t*(-4*x1 
+ 4*x2 - 4*x3 + t*x1*x3))) +  _
   (x1*sqrt(-(t*x3))*(-x2 + x3))/(sqrt(-(t*x1))*(x1 - x2 + 
x3)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  _
  (sqrt(-(t*x1))*x2*sqrt(-(t*x3)))/(t*(-x1 + x2 - x3)*sqrt(t*(-4*x1 + 4*x2 
- 4*x3 + t*x1*x3))) +  _
   (sqrt(-(t*x1))*(x1 - x2)*x3)/(sqrt(-(t*x3))*(x1 - x2 + x3)*sqrt(t*(-4*x1 
+ 4*x2 - 4*x3 + t*x1*x3))) +  _
   (x1*sqrt(-(t*x3))*(-x2 + x3))/(sqrt(-(t*x1))*(x1 - x2 + 
x3)*sqrt(t*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))),  _
  (x1*x2*x3)/((-x1 + x2 - x3)*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3)) -  _
   ((x1^2 - x1*x2)*x3)/((x1 - x2 + x3)*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3)) -  _
   (x1*x3*(-x2 + x3))/((x1 - x2 + x3)*(-4*x1 + 4*x2 - 4*x3 + t*x1*x3))]]

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/1f2e7cad-aba5-40e0-a225-6c4ab97b54adn%40googlegroups.com.

Reply via email to