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.

Reply via email to