Skip to content

Commit

Permalink
treeToJME puts brackets round RHS of ^ when it's complex
Browse files Browse the repository at this point in the history
  • Loading branch information
christianp committed Feb 13, 2017
1 parent 3fa6980 commit c222a2f
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions runtime/scripts/jme-display.js
Expand Up @@ -1308,20 +1308,21 @@ var typeToJME = Numbas.jme.display.typeToJME = {
var arg_type = args[i].tok.type;
var arg_value = args[i].tok.value;
var pd;
var bracketNumberOp = (op=='*' || op=='-u' || op=='/' || op=='^')

if(arg_type=='op' && op in opBrackets && opBrackets[op][i][args[i].tok.name]==true)
{
bits[i]='('+bits[i]+')';
args[i].bracketed=true;
}
else if(arg_type=='number' && arg_value.complex && (op=='*' || op=='-u' || op=='/')) // put brackets round a complex number
else if(arg_type=='number' && arg_value.complex && bracketNumberOp) // put brackets round a complex number
{
if(arg_value.im!=0 && !(arg_value.im==1 && arg_value.re==0))
{
bits[i] = '('+bits[i]+')';
args[i].bracketed = true;
}
} else if(arg_type=='number' && (pd = math.piDegree(args[i].tok.value))>0 && arg_value/math.pow(Math.PI,pd)>1 && (op=='*' || op=='-u' || op=='/')) {
} else if(arg_type=='number' && (pd = math.piDegree(args[i].tok.value))>0 && arg_value/math.pow(Math.PI,pd)>1 && bracketNumberOp) {
bits[i] = '('+bits[i]+')';
args[i].bracketed = true;
}
Expand Down Expand Up @@ -1963,6 +1964,10 @@ var simplificationRules = jme.display.simplificationRules = {
['tanh(0)',[],'0']
],

trigPowers: [
['sin^(?;n)(?;x)',[],'sin(x)^n']
],

otherNumbers: [
['?;n^?;m',['n isa "number"','m isa "number"'],'eval(n^m)']
]
Expand Down

0 comments on commit c222a2f

Please sign in to comment.