Bill Page wrote:
> 
> I made a preliminary change to ElementaryFunctionStructurePackage here:
> 
>   http://axiom-wiki.newsynthesis.org/SandBoxElementaryFunctionStructurePackage
> 
> which avoids the  "Hidden constant detected" error.  The main idea is
> just to avoid differentiating conjugate by replacing it with a dummy
> placeholder:
> 
>     opNotConj : BasicOperator := operator('%conjugate)$CommonOperators
>     opConjugate : BasicOperator := operator('conjugate)$CommonOperators
>     noConj(k:K):F ==
>       is?(k,'conjugate) => kernel(opNotConj,argument k)::F
>       k::F
>     toConj(k:K):F ==
>       is?(k,'%conjugate) => kernel(opConjugate,argument k)::F
>       k::F
>     -- avoid trying to differentiate conjugate
>     safeDifferentiate(f:F,x:SY):F ==
> rmap(toConj,differentiate(rmap(noConj,f),x))
> 
> Maybe you see a better way?

I think that this is wrong way.  Namely you take unsound
default (that is make 'D(conjugate(x), x)' equal to 0)
and then try to 'opt out' in places where is causes
troubles.  IME this leads to long tail of bugs, when
thing constantly break out in new ways.  Instead,
'opt in' when transformations are applied only when known
safe is much better.  I understand that using unsafe
transforamations by default may look attractive, because
they are fequently correct and systems using them looks
smarter when tested on simple examples (safe system may
easily miss possibility of applying a transformation).

Basicaly D(conjugate(x), x) = 0 or even
'conjugate(log(x)) = log(conjugate(x))' are too unsafe to
apply them by default.  Rather they should be done by
separate functions, which are either explicitely
requested by user or called when we know that needed
assumptions are satisfied.

-- 
                              Waldek Hebisch
[email protected] 

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to