Re: [HPPrime CAS] Bugs and more Bugs ... Message #37 Posted by CompSystems on 2 Aug 2013, 11:30 a.m., in response to message #36 by Gilles Carpentier
>>  If it is not a square matrix, it works like a 'vector of vector' with special rules ... A 'vector of vector' could be something 'exotic' like : [[1 2 3] 3 [1 2] 4] wich is (if i understand well !) a vector of 4 vectors of 3D, 1D 2D 1D dimensions.
but much better, it would define a new data type, special matrices and vectors
so let the matrices and vectors well defined and ready the problem
« [1 2 3] 3 [1 2] 4 » // valid a new data type
« == CHAR #171
» == CHAR #187
The CAS for the student should be transparent, unambiguous, the student would have to think this is a matrix y no a vector of vectors or n dimensional matrix or pseudomatrix or pseudovector or
>> The question is if these extensions (.*) (./) (.+) (.) (.^) have a sense or not other object
If they have sense, not to violate the linear algebra
(.*) (./) (.+) (.) (.^) consider dots commands as functions no operators =) like matLab and TIderive/TI89/Nspire
(.*) == Hadamard function of matrix
(*) no dotProduct
(*) no crossProduct
[HPPrime CAS++]
[ 1 2 3 ] .+ 4 > [ 5, 6, 7 ] // OK
[ 1 2 3 ] + 4 > "Error data type" // OK
[ 1 2 3 ] . 4 > [ 3, 2, 1 ] // OK
[ 1 2 3 ]  4 > "Error data type" // OK
[ 1 2 3 ] .^ 4 > [ 1^4, 2^4, 3^4 ] // OK
[ 1 2 3 ] ^ 4 > "Error data type" // OK
M1 :=
[[ 3, 2, 4 ],
[ 2, 0, 2 ]] // OK
M1^3 > "Error data type" // OK
M2 :=
[[ 3, 2, 4 ],
[ 2, 0, 2 ],
[4, 2, 3]] // OK
M2 ^ 2 >
[[ 29, 14, 28 ],
[ 14, 8, 14 ]
[ 28, 14, 29]] // OK
L1 := {
3+4*i, // Dom_Complex
3*x+2*y+4=0, // Dom_Symbolic
"3*x+2*y+4=0" , // Dom_String
"x: =", // Dom_String
[[ 3, 2, 4 ], [ 2, 0, 2 ]], // Dom_matrix =) not List
2, // Dom_Int
2,7182, // Dom_Float
[ 1, 2 ], // Dom_Vector, not list
{ A, Z0, L0, M0, G0 } // Dom_List With A = #, B = complex#, L0 =List, M0 = Matrix, G0 = Graphic
}
L1 ^ 3 > "Error data type" // ...
L1(1) ^ 3 == (3+4*i) ^ 3 // valid
L1(2) ^ 3 == (3*x+2*y+4=0) ^ 3 // valid
L1(3) ^ 3 == "3*x+2*y+4=0" ^ 3 // invalid
L1(4) ^ 3 == "x: =" ^ 3 // invalid
L1(5) ^ 3 == [[ 3, 2, 4 ], [ 2, 0, 2 ]]^3 // invalid
L1(6) ^ 3 == 2^3 // valid
L1(7) ^ 3 == 2,7182^3 // valid
>>
[HPPrime CAS] current
L1^3 [Enter] return { BUG LIST } =(
// [Request] please do not make sense to apply an operator (*,^,/,+,) and others commands to all types of objects in the calculator
Other BUG
[+/]"HPPrime" [Enter] return "HPPrime" ???
"HPprimeCAS""" return "HPprimeCAS" ???
"HPprimeCAS" + "++ > TInspireCAS" return "HPprimeCAS++ > TInspireCAS" // OK HP CAS > TI CAS
EXPR("X =" + 3 ) [Enter] return X=3 // OK
EXPR("X =" ^ 3 ) [Enter] "Error data type" // OK
>> 2/ Use the .* ./ etc syntax (this does'nt work with the prerelease)
[[1,2][3,4]] .^ 2
if work with the prerelease firts place [.], then from the character 'window" [Shift]+[Var] insert "^" character and run =)
[Request] [ShiftLock]+[x^y] = '^' no template x^y
[ShiftLock]+[+/]= '' evaluate
Edited: 2 Aug 2013, 9:49 p.m.
