Advanced User's Manual and solution to the ambiguity of data types [HP-Prime xCAS]


Perdon Google Translator

Hello, there are 2 adaptations or ports de xCAS en i-OS

1: [CAS Calc P11] - Scientific Graphing Calculator for Math and Science

2: [PocketCAS]

As yet we have not advanced user guide [HP-PrimeCAS], find documentation on the internet, reading the manuals seee how powerful the xcas, and talk about a multi-list data type using brackets, as well as CAS is a mathematical designed for experts, too complicated for beginners, and I think it will be confusing for the middle and high school student

for example

sets (set) requires a prefix before the bracket set[]

sequences (seq) requires a prefix before of the bracket seq[]

should also have prefixes for vectors and matrices

vector => vec[]

matrix => mat[]
So avoiding the ambiguity in data manipulation, are saying?

User's Manual



My idea:


set[1,2,3,4] intersect set[5,6,3,4] // Edit paste on "emulator"

lst[1,2,3,4] * lst[5,6,3,4] => { 5, 12, 9, 16 }

mat[1,2,3,4] * mat[5,6,3,4] => "Invalid Dimension"


Edited: 14 Aug 2013, 12:26 p.m. after one or more responses were posted


Would some kindly volunteer please translate CompSystems' postings into clear, discrete points? It would sure help. I get the feeling that he has valid points that deserve attention... but I can't figure out what they are. Thanks in advance.



CompSystems meant: **********************************

Hello everybody,

I see there are two xCAS ports for iOS

1: [CAS Calc P11] - Scientific Graphing Calculator for Math and Science

2: [PocketCAS]

And because of there are not [HP-PrimeCAS] Advanced User Guides, then I was looking for more information about xCAS, and found xCAS manuals that show how powerful it is, expecificly about multi-list type limited by brackets[], and then I think if HP Prime CAS was designed to be useful for experts and so complicated for beginners and high school students, maybe will be posible to use prefixes before brackets []:

Sets: it would be required "set" prefix: set[].

Sequences: it would be required "seq" prefix: seq[].

Vectors: it would be required "vec" prefix: vec[].

Matrices: it would be required "mat" prefix: mat[].

It would help to avoiding ambiguity on data manipulation, what do you think?
(To make difference between sets, sequences, lists, matrices and vectors)


Edited: 12 Aug 2013, 12:37 p.m.


Perdon in castillian

Observen la 1er imagen de arriba, segun el xcas

(vector * vector) lo define como producto punto, (poder se puede, aunque sea antipedagógico), ahora si uso el comando

DOT( [ i, 1 ], [ i, 1 ] ) lo hace muy bien => 2 //OK // recuerde que i = v¬ -1, i^2 = -1

pero si uso la notación "facil" es decir para no escribir la palabra super larga DOT, si no el ( * ) como le gusta al autor del xCAS

[ i, 1 ] * [ i, 1 ] // lo hace muy mal => 0 //BUG // tiene que tener en cuenta que es un vector con números complejos y debe realizar la conjugada del vector antes de realizar el producto punto,

[Request] se requiere en programación un comando para detectar si un vector o matriz tiene entradas con números complejos, isComplexArray?(arg) => true/false

hay una incoherencia, primero dice que use ( * ) como reemplazo de DOT, pero no lo aplica, en lugar de facilitar las cosas las complica, yo quiero un CAS riguroso osea como debe ser, para el mundo real el mundo de la aula de clase

Como todo es un mismo tipo de dato, entonces lista * vector debe operarse

{ i, 1 } * [[ i, 1 ]] => [ -1, i ] ??????? // No se que tipo de operación esta realizando, no es producto punto, ni multiplicación elemento a elemento,buscando en los libros modernos de álgebra lineal, de pronto hay algún nuevo producto entre vectores que yo aun lo desconozca

Ahora como una matrix, es un vector y una lista a la ves (sopa de letras)

[[ i, 1 ]] * [[ i, 1 ]] es producto punto de vectores?/ multiplicacion de matrices?/ multiplicacion de listas?, supongo que es matrices por los dobles corchetes, o vector con un vector interno según el manual del CAS, si es un vector de vector debe hacer el producto punto o no, pero no lo hace, retorna vació [[]], es decir, no se que decir,

tengo que interpretar las respuesta, yo ya soy viejo, quiero ver la cara de un estudiante que al multiplicar vea una matriz vacia [ [ ] ]

[[ i, 1 ]] * [[ i, 1 ]] => [[]] significa que las entradas son matrices fila y como no son "compatibles" para el operador ( * ) entonces no hay respuesta o vector de vector vacio [[]], ahora dentro de un programa tengo que hacer un

if ... == [[]] then

"invalid dimension"



y así para muchos comandos

es decir tengo que re-escribir o hacer una biblioteca de funciones nuevas para "acomodar" la mala filosofía del xCAS, no es que sea malo, si no que tiene un mal enfoque dentro de la versión para la HP-Prime

la HP-prime tambien es una calculadora ambigua en la utilización de nombres de ls comandos , aveces utiliza nombres con siglas otras veces completos, es el caso de TRN <conjugada> y transspose

[Request] HAY QUE RENOMBRAR muchos nombres de comandos, por ejemplo heredaron muchos malos nombres de la HP50G el comando TRN (transpose conjugate como transConj) hay que utilizar nombres nemotecnicos, recordemos que este producto va hacia el campo educativo

crossp => crossProd, y utilizar cambio de minúscula a Mayúscula en nombres compuestos dentro del catalogo

el # 2 como suena parecido a (to) entonces en ingles se usa como reemplazo,

mat2list => matToList // pero mejor se usa el # 2 para crear una 2da version de un comando

[Request] permitir asignar a la letra minúscula "i" como lo hace matlab, para que el usuario pueda definir a su gusto el valor de i y no restringirlo a la unidad imaginaria

si el usuario re-asigna 'i' matlab usa una 'i' interna (buena idea)

[Request for emulator]

Como hubo muchas correcciones entre la versión pre-release y la actual, sugiero que las próximas versiones del "emulador" de la HP-Prime sean bajo TRIAL de 1 mes, de lo contrario circularan por la RED versiones "muy malas", ademas que automáticamente detecte nuevas versiones para su actualización

Para diferenciar de una versión a otra recomiendo que en titulo de la ventana, se muestre (CAS V.-.-.-) en lugar de solo CAS


y por que no vender una versión de la HP-Prime para i-OS o Android-OS

Edited: 14 Aug 2013, 12:45 p.m.


AlgebraLineal Con CAS Computer Algebra System.pdf


Is there something I don't understand here? Why is DOT(u,u)=2 correct? This seems to be wrong. When I compute the dot product of two row vectors, I get:

DOT(u,u) = [ i 1 ] . [ i 1 ] = i^2 + 1^2 = -1 + 1 = 0

Why are the other systems getting 2? My guess is that 'i' here is not the imaginary number equivalent to sqrt(-1). In engineering, 'i' simply denotes a unit vector (though most textbooks use a bold 'i' or an 'i' with an arrow above it). Under this assumption, the the dot product would be correct as 2. However, if that is the case, then one must ask what the meaning is of the '1' within [i 1] -- because if 'i' is just a unit vector, then the '1' must be yet another unit vector (but without any designation such as 'j' or 'k' !?) This is confusing -- and this confusion makes for a terrible CAS. There needs to be some sort of consistency. Is this documented somewhere?


I guess it's because we work here in a complex vectorial space C²

'u' is here a vector with complex scalars

and the way to calculate the dot product is not the same that in real vectorial space R².

For example :

u=[a+b.i , c+d.i]

dot(u,u) = a²+b²+c²+d²


I see... thank you for the explanation. It does raise a concern though. Nothing on the HP Prime screen indicates that the operation is over C^2 and not R^2. Nor is there any obvious way to distinguish [ i 1 ] in C^2 from [ i 1 ] from R^2. I would expect some sort of annunciator or flag setting visible on the home screen to help users make the distinction.



what do you mean with the dot product of [i 1] by [i 1] ?

I understand this as a scalar product in a 2D complex vectorial space. It seems to me that scalar product only applies in euclidean space ( dot([1 1] [1 1]) or dot(1+i, 1+i) if you consider C as R²)

I'm not sure that the result '2' of the Prime means something here

What does Nspire with this ? edit : i mean a scalar product of 2 complex vectors

The 50G returns 0 for this but I dont understand what that means

[(0,1) (1,0)] DUP DOT

-> 0


['i' 1 ] DUP DOT
-> 1+i*i
-> 0

Edited: 16 Aug 2013, 9:00 a.m.



DOT( [ i , 1 ], [ i , 1 ] ) => 2

Dot Product Source


SIMPLIFY ( DOT( [ i , 1 ], [ i , 1 ] ) => 0 // =( Fortunately I have a HP50G calculator with upgradable ROM, but maybe launch a new ROMs in 201x

->V2( i, 1 ) // "Bad Argument Type" Why?

[HP-Prime request]

please pretty print for [[1,2],[3,4]]([1]) // get row # 1


[[1,2],[3,4]]([NONE, 2]) // get col # 2 ~ MATLAB


Edited: 16 Aug 2013, 1:19 p.m.


From a mathematical point of view, a set has ALWAYS been denoted with {} for me -- not [] (which denotes a row vector). When you start straying from mathematical convention, then (in my opinion), the calculator starts to lose its purpose -- which is to be a mathematical computing machine.

The big problem I see here is that HP seems to be relying on an outside source for the core of their HP Prime. Perhaps I am simply misinformed, but HP should not just use xcas as is -- they should have their own developers create an in-house fork and build their own CAS that follows mathematical conventions as far as syntax goes. Perhaps they could even add in several mode flags for, say, engineers or any other field where the conventions for certain types of mathematical objects use a slightly different syntax.


It's not obvious for me...

As far I remember, vectors are most of time between ()



/ x \
V= | y |
\ z /




by the way matrice should also be in ()

I agree about set {}

Edited: 20 Aug 2013, 12:20 p.m.


From a mathematical point of view, a set has ALWAYS been denoted with {} for me -- not [] (which denotes a row vector).

Too bad that Mathematica has a different convention.

Kind regards



Same for vector which are also between { } in Mathematica


With respect to the Mathematica references:

Yes, and this is a shame too (esp. since Mathematica started its development at my Alma mater). I don't want to be pedantic, and as much as I love using Mathematica and appreciate that it is deployed over many institutions and research labs, Mathematica is not (and should not be) the standard for mathematics -- especially syntax.

We are not helping students (if that is indeed the intended target) in any way when our textbooks use one convention while our electronic tools use another convention that conflicts with those in our textbooks and classrooms. And yes, I am aware that vectors are also written as (a,b,c) or <a,b,c> or ai+bj+ck.


The syntax of Mathematica has one advantage though: f(a + b) = fa + fb and f[a + b] (i.e. function call) can't be confused. The syntax might contradict the way we write mathematical formulas but at least it is consistent. I'd prefer a calculator with the exact Mathematica syntax to a slightly different one that you won't use after high school.



Possibly Related Threads...
Thread Author Replies Views Last Post
  Does the HP Prime really compiles the user programs? CompSystems 3 805 12-13-2013, 01:55 PM
Last Post: Mike Morrow
  [HP-PIRME] BUG Pretty Print, Solution: abs => |...|, ABS => ||...|| CompSystems 2 712 12-13-2013, 09:36 AM
Last Post: CompSystems
  Is Linux common among us RPN types? db (martinez, ca.) 46 4,583 12-11-2013, 08:25 PM
Last Post: Paul Guertin
  HP Prime Manual Revisions? Craig Thomas 0 394 12-09-2013, 11:08 PM
Last Post: Craig Thomas
  HP 50g switching two keys in the user keyboard Sean Freeman 9 1,240 12-05-2013, 11:44 AM
Last Post: Mark Puscas
  HP 41 Advanced Programming Tips Michael Fehlhammer 0 391 11-28-2013, 06:11 PM
Last Post: Michael Fehlhammer
  Sheet data importer for HP Prime Marek Russ 4 631 11-15-2013, 04:55 AM
Last Post: debrouxl
  HP Prime - User manual lack bluesun08 6 939 11-08-2013, 05:38 PM
Last Post: bluesun08
  XCas / Prime "solve" question Nigel J Dowrick 4 726 11-08-2013, 04:01 AM
Last Post: Nigel J Dowrick
  HP PRIME : strange behavior when trying user key capability Damien 12 1,320 11-03-2013, 11:02 AM
Last Post: Joe Horn

Forum Jump: