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?
Bill.
On 12 September 2014 20:40, Bill Page <[email protected]> wrote:
> Waldek,
>
> With the version of FriCAS on the wiki and the most recent code for
> FunctionalSpecialFunction I get what look to me to be reasonable
> results for your examples labelled with (1), (3), (3) and (3) below.
>
> See:
>
> http://axiom-wiki.newsynthesis.org/SandBoxFunctionalSpecialFunction#eq27
>
> Your example (24) still returns the library error: "Hidden constant
> detected". Do you have any hints as to where I should look in the
> source code?
>
> Bill.
>
> On 11 September 2014 22:23, Bill Page <[email protected]> wrote:
>> ...
>>>>
>>>> I would like to collect some examples of such errors.
>>>
>>
>> Thank you very much for these!
>>
>>>
>>> With your current code:
>>>
>>> (24) -> normalize(exp(conjugate(x)+x)+exp(x) + exp(conjugate(x)))
>>> _
>>>
>>> >> Error detected within library code:
>>> Hidden constant detected
>>>
>>> With derivative of 'conjugate' changes to error:
>>>
>>> (1) -> integrate(exp(conjugate(y)*x), x)
>>>
>>> >> Error detected within library code:
>>> differentiating conjugate
>>>
>>> (3) -> normalize(exp(conjugate(y)*x)+exp(x))
>>>
>>> >> Error detected within library code:
>>> differentiating conjugate
>>>
>>> (3) -> limit(exp(conjugate(y)*x), x=%plusInfinity)
>>>
>>> >> Error detected within library code:
>>> differentiating conjugate
>>>
>>> (3) -> series(conjugate(x), x=1)
>>>
>>>
>>> >> Error detected within library code:
>>> differentiating conjugate
>>>
>>
>> The last example produces a result using the version of FriCAS
>> currently installed on the wiki. Is it correct?
--
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.