===================================================================================

[ BUG ] REPORT: Distinct [ diff ], slanted [d] and Math differentiation [ Template ] operators Results for Differentiation with respect to [ More ] than 1 Variable

===================================================================================

--------------------------------------------------------------------------------------------------------------------------------------------------

I will be providing a Detailed [ BUG ] REPORT ( already described at the

http://www.tricider.com/brainstorming/2eKfifdjarx page ), which may have been still unnoticed at all ( due to the vast number of suggested items on that page ).

--------------------------------------------------------------------------------------------------------------------------------------------------

The general syntax for [ Differentiation ] operator both by [ diff ] command or the slanted [d] symbol ( available from catalog ) is:

diff( expression, variable [, variable, [ ..., variable ] ] ] )

or

slanted [d]( expression, variable [, variable, [ ..., variable ] ] ] )

The results provided by [ Both ] forms of Differentiation should be the [ Same ], which unfortunately does [ Not ] happen for [ More ] than [ One ] variable ( even with Rev 8151 of the Kernel ), with only [ diff ] command producing the [ Correct ] result.

Take for example the Differentiation of x^2 * y^3 with respect to y and then to x by

diff( x^2 * y^3, y, x )

which Correctly produces 6*x*y^2

while by taking the Same compound Derivative by means of the slanted [d] symbol ( invoked from the command catalog )

[d]( x^2 * y^3, y, x )

Wrongly produces 0

If the Compound derivative were taken by Parts, even so the slanted [d] operator produces the Wrong result 0 by following the below order of instructions

First

[d]( x^2 * y^3, y ) correctly produces

3*x^2*y^2

if one now invokes the slanted [d] operator on the Produced last answer Result with respect to x one Correctly arrives at

[d]( 3*x^2*y^2, x )

resulting in 6*x*y^2

but if one applies a Chained slanted [d] operator, by means of

[d]( [d]( x^2*y^3, y ), x )

one arrives at the Wrong result of 0

Its interesting to Note that the slanted [d] Differentiation operator symbol, available from the [ Catalog ] of functions, presents a Differentiation [ Template ] at command line, while invoked, by the same way as invoking the differentiation Operator by touching on the Math Operations Template.

To make things a bit more Clear, from the Example provided, imagine one taking the following order of operations, by

First invoking Math Operations Template, then selecting the slanted [d] operator and entering the x^2 * y^3 expression at the numerator, and y variable at the denominator, producing the intermediate Differentiation only with respect to y

[d]( x^2 * y^3, y )

resulting in the Partial Result

3*x^2*y^2

if now one Invokes the Math Template again and selects the slanted [d] operator and uses the command [ History ], by means of the Upward motion ( of the four direction cursor ), and [ Selects ] the Previous entry [ Input ]

[d]( x^2 * y^3, y )

and press [ Enter ] as the Numerator expression to be now differentiated with respect to x variable ( at the Denominator ), one ends up with the [ Compound ] differentiation input first by y and then by x

[d]( [d]( x^2*y^3, y ), x )

which produces the Wrong result 0

If after invoking Math Template and selecting slanted [d] operator ( with respect to y variable ) instead of [ Selecting ] the Previous entry [ Input ] " [d]( x^2 * y^3, y ) " ( by means of the Upward cursor ) one [ Selects ] the previous entry [ Output ] " 3*x^2*y^2 " as the Numerator, and specifies the x variable at the Denominator, one Correctly arrives at

[d]( 3*x^2*y^2, x )

producing the Right answer 6*x*y^2

Its also interesting to note that while filling the Differentiation [ Template ] one may specify [ Compound ] Derivatives, by simply providing the [ List ] of Variables, separated by [ , ] Comma, at the [ Denominator ] of the Template.

So one may Select the slanted [d] operator from Math Template, and provide the desired expression like x^2 * y^3 at the Numerator and provide " y,x " as the Denominator Variables [ List ], which will effectively produce

[d]( [d]( x^2*y^3, y ), x )

which unfortunately produces the [ Wrong ] result of 0

Other Examples of [ Compound ] Differentiation just for Reference ( and to complement the provided example ), allowing for a Better compreension of What may be Actually going [ Wrong ] with [ Compound ] Variable Differentiation with the slanted [d] operator on Kernel 8151 of HP Prime are

[d]( [d]( [d]( x^n, x ), x ), x )

which produces the [ Right ] answer

while

[d]( x^n, x, x, x )

by providing the x,x,x [ List ] at the [ Denominator ] of the differentiation [ Template ]

produces the [ Wrong ] answer

n*x^(-1+n)

Its also interesting to note that

diff( x^n, x, x, x )

or

diff( x^n, x$3 )

produces the [ Right ] answer.

Its Clear that Distinct [ Compound ] Differentiation [ options ] provided by HP Prime by means of the [ diff ] operator command and the slanted [d] operator symbol ( from catalog ) and the Math Operations Template should be [ REVISED ] since undesirable Wrong results are Produced by Compounding the slanted [d] operator.

It seems that some sort of [ Distinct ] Operator [ Priority ] for the [ diff ] command and slanted [d] symbol may be causing such problems.

Yours Sincerely, with my Best Wishes to All,

Prof. Ricardo Duarte