Changeset 175
- Timestamp:
- 01/14/08 07:44:22 (8 months ago)
- Files:
-
- trunk/blade/BladeSimplify.d (modified) (3 diffs)
- trunk/blade/BladeVisitor.d (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/blade/BladeSimplify.d
r173 r175 427 427 assert(foldIndices("A[,B..$,C]", "300")=="A[,B..$,C]"); 428 428 // Multidimensional slicing 429 assert(foldIndices("(C*((A*B)[C]))[D]", "2200")=="C* (dot((A[C,]),(B[D])))");429 assert(foldIndices("(C*((A*B)[C]))[D]", "2200")=="C*dot((A[C,]),(B[D]))"); 430 430 assert(foldIndices("(A*B)[C..D,D]", "2200")=="(A[C..D,])*(B[D])"); 431 431 assert(foldIndices("(A*B)[C..D]", "2200")=="(A[C..D,])*B"); … … 439 439 assert(foldIndices("(((A*B)*C)[D..E])[D]", "12200")=="dot((A*B),(C[D+D]))"); 440 440 assert(foldIndices("A+=(((D[B])*C)[B])", "2004")=="A+=((D[B,B])*C)"); 441 assert(foldIndices("dot(A,(A*dot(A,A)))","1")=="dot(A,(A* (dot(A,A))))");441 assert(foldIndices("dot(A,(A*dot(A,A)))","1")=="dot(A,(A*dot(A,A)))"); 442 442 } 443 443 … … 611 611 assert(foldScalars("A*=-(-B)", "10")=="A*={(-(-B))}"); 612 612 assert(foldScalars("sum((A*sum(A)))", "1")=="({sum(A)})*({sum(A)})"); 613 assert(foldScalars("abs((A*abs(B)))", "10")==" (abs(A))*{(abs((abs(B))))}");613 assert(foldScalars("abs((A*abs(B)))", "10")=="abs(A)*{abs(abs(B))}"); 614 614 assert(foldScalars("abs((-A))", "1")=="abs(A)"); 615 assert(foldScalars("abs((abs(((-A)*B))))", "10")==" (abs(A))*{(abs((abs((-B)))))}");616 assert(foldScalars("min((A* (sum((B*A)))))", "10")=="{min(A*{(B*({sum(A)}))})}");617 } 615 assert(foldScalars("abs((abs(((-A)*B))))", "10")=="abs(A)*{abs(abs((-B)))}"); 616 assert(foldScalars("min((A*sum((B*A))))", "10")=="{min(A*{(B*({sum(A)}))})}"); 617 } trunk/blade/BladeVisitor.d
r174 r175 35 35 return visitor.onVisitSymbol(visitor, expr); 36 36 } 37 if (expr .length>3 && (expr[0]>='a' && expr[0]<='z')) { // function37 if (expr[0]>='a' && expr[0]<='z' && exprLength(expr)==expr.length) { // function 38 38 char [][] args; 39 39 int z=1; … … 136 136 char [] wrapInParens(char [] a) 137 137 { 138 return (a.length==1 )? a : "(" ~ a ~ ")";138 return (a.length==1 || (a[0]>='a' && a[0]<='z' && exprLength(a)==a.length))? a : "(" ~ a ~ ")"; 139 139 } 140 140
