#57 Star Display Character


Background: Maxima (et al. xMaxima, wxMaxima, etc.) displays numerical and symbolic factors of various sorts using a space as a separation character to indicate multiplication. There probably are good reasons for this -- several being that x (or X) as a symbol for the operation of multiplication is too easy to confuse with the conventional use of x as a variable, that the * (asterisk or "star") character used for inputting expressions to signify multiplication is not a standard or conventional symbol for this operation in general outside of this context (although it is commonly used within the similar contexts of computer software programming syntax of various stripes, hand-held calculator devices, etc.), and that the use of the space instead of a character for multiplication is more closely allied with the conventions of algebraic symbolic notation. That all having been said there seems to be contexts in which displaying an output character to indicate multiplication other that the space character would be useful and probably superior to both the blank and asterisk for this purpose.

Maxima as it stands uses the stardispflag variable for this purpose of setting whether or not to display the "star" on output for multiplication.

Suggested Addition: There are no programmatic or practical reasons to limit the output character for the stardispflag to the asterisk character on output for display or for Tex conversion. The request is to create an adjunct variable to stardispflag (e.g., stardispchar) that allows a character to be specified to be used as the display character for this purpose with the asterisk as the default per the status quo.

For example:

stardispchar: ascii(183);
stardispflag: true;

This uses the "middle dot" ASCII character as the symbol to be displayed instead of a space or asterisk. At some later point in the stream of output, these settings may be returned to the default if desired.

This seems that it should be an easy addition to accomplish in the Maxima code (I am not a programmer, or doing the work, so this statement is presumptive). Where the stardispflag is coded merely set the character to stardispchar in the code where the flag is evaluated as being true instead of the asterisk. Then it remains to create the character variable stardispchar -- this will make for more flexibility in the output for those who want this without forcing this change on those are not used to it in Maxima or who don't care about the issue.

Thank you for your time and the effort on this project and in considering this suggested addition.

David E. Miller

P.S. Please do not charge me for helping.


  • David Miller

    David Miller - 2009-01-20

    I made an error in the text above.

    where "stardispflag" is referred to it should read merely "stardisp"

    This suggestion merely allows a character other than an asterisk or white space to be used as an indicator of a multiplication operation in the displayed output.

    When only literal names are used or a mixture of literal names and a numerial coefficient is involved, the existing display is adequate, but if more than one numerical value is involved, the use of a white space as an indicator of multiplication in the display can be awkward.

    The stardispchar can be the asterisk by default and not involved with the display if stardisp is false.

    David E. Miller

  • Robert Dodier

    Robert Dodier - 2012-03-28

    This is a little clumsy, but it's a way to get the effect you want:

    :lisp (setf (get 'mtimes 'dissym) (list (code-char 183)))

    Thereafter multiplication expressions are displayed with a center dot.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks