# wmi2

WebMathematics Interactive 2 bug tracking system.

## FS#38 - Layouts: general rules

Attached to Project: wmi2
Opened by Kovacs Zoltan (kovzol) - Friday, 20 July 2007, 16:06 GMT+2
Last edited by Kovacs Zoltan (kovzol) - Saturday, 03 April 2010, 13:05 GMT+2
Task Type Bug Report Backend / Core Closed Kovacs Zoltan (kovzol) All Medium Normal Development 2.2 2008-01-01 0 No

### Details

The first layouts should be created by the developers on their own. A suggested way comes from the wxMaxima software. Its menu system is:

Equation: Solve, Solve numerically, Roots of polynomial, Roots of polynomial (real), Solve linear system, Solve algebraic system, Eliminate variable. Solve ODE, Initial value problem (1, 2), Boundary value problem. Solve ODE with Laplace.

Algebra: Invert matrix, Characteristic polynomial, Determinant, Eigenvalues, Eigenvectors, Adjoint matrix.

Calculus: Integrate, Change variable (integration), Differentiate, Limit, Series, Sum, Product, GCD, LCM, Divide polynomials, Partial fractions, Continued fractions.

Simplify: Simplify, Expand, Factor, Substitute.

Plotting: Plot 2D, Plot 3D.

However these are not grouped by the age of interest, we should do something for different kinds of people of interest:

1. Grammar school: Equation solving, function plotting, expression expansion and factorization, prime factorization, GCD, LCM.

2. Calculus: Limit of sequences, limit of function, differentiation, integration, function plotting, Taylor series, partial fractions, sum, product.

3. Linear algebra: Invert matrix, characteristic polynomial, determinant, eigenvalues, eigenvectors, adjoint matrix.

4. Algebra: Equation solving, divide polynomials, factorizing, expansion, GCD and LCM for polynomials.

5. Number theory: Integer factorization, next prime, previous prime, is prime?, GCD, LCM.

In each layout there should be place for the following special buttons:

1. Layout chooser (top-left, order=1).
2. CE (or C? AC?) must be on top-right (order=5).
3. The language selector should be put to a fixed position, probably 2 or 3 or 4 (decision should be done).
4. Fix parts of the calculator (numbers, basic operations, period) should be put to fix places.

Closed by  Kovacs Zoltan (kovzol)
Saturday, 03 April 2010, 13:05 GMT+2
Reason for closing:  Implemented
Comment by Kovacs Zoltan (kovzol) - Tuesday, 24 July 2007, 17:26 GMT+2
6th layout: Multivariable calculus?

7th layout: Advanced algebra: factorization over various fields.

(Discussions with R. Vajda.)
Comment by Kovacs Zoltan (kovzol) - Tuesday, 31 July 2007, 14:00 GMT+2
8th layout: Boole algebra?

In addition, two possible versions of the normal layout is submitted for comments on http://wmi.math.u-szeged.hu/~kovzol/gombok.html -- please think about them. Some explanations for them:

I prefer the second one, both in colors (which come from the WMI bear logo) and the placements. Groups are shown to the right of the calculator layout, e.g. 10^x is a button which is in the group of 10^x, 2^x and e^x.

Solve is for equation solving. Probably a "," button would be also nice for equation systems. The logo for this button could be "x=?", similar to WMI1.

Fplot is for function plotting. The logo should be similar as in WMI1.

Simp is for simplify. For logo I recommend the DVI output for $$x^4\!\not{\!y}\over3\!\not{\!y}$$, or something similar.

Factor is for integer AND polynomial factorization. The logo should be $$2\cdot3\cdot(x-1)^2$$.

Eval is the standard calculator evaluation. Probably "=" would be much better for writing anything else onto this button and the equal sign for equations should go to the neighborhood of the letter "x".

Expand should be x^3+3x^2+3x+1.
Comment by Kovacs Zoltan (kovzol) - Tuesday, 31 July 2007, 15:31 GMT+2
I added a 3rd version for the normal layout which is much better (in my opinion) than the first two ones.

The "normal" layout should be shown as "normal pupils" in a school. I uploaded 3 possible versions as normal{1,2,3}.png. The 3rd one seems to be the best.

The "calculus" layout should be shown as Taylor polynomials of sine. The "number theory" layout should have a 6 digit number with the 1-3. and the 4-6. are emphasized and the 1., 3. and 5. underlined (like a strange code).

The "algebra" layout should be x^4-2x^2+1.
Comment by Kovacs Zoltan (kovzol) - Tuesday, 31 July 2007, 22:51 GMT+2
I commited my changes to the colors and I created some new buttons and a new layout as well. I'm not sure my colors are better than the original ones --- I am going to ask my brother, Zsigmond, who is an artist and deals with colors all the day... Thank you for your patience until that. :-)
Comment by Fekete Arpad (arpad) - Wednesday, 01 August 2007, 08:14 GMT+2
I think the third is the best. But I suggest that the digit buttons should be on the bottom as in normal calculators.
Comment by Fekete Arpad (arpad) - Wednesday, 01 August 2007, 08:19 GMT+2
I think my layout is better than yours, because it is based on calculator layouts. So one-variable functions should be over the digits, I think, and basic operations as in normal calculators. Bottom left 3x4: digits; bottom 4th column 1x4: basic operations; bottom right 1x4 (or more): operation button (maxima, gnuplot).
Sin, Cos, Tan over the digits, additional one-variable functions, over it, the others where space is left.
Comment by Fekete Arpad (arpad) - Wednesday, 01 August 2007, 08:22 GMT+2
I suggest operations to be red, because this color signs something important, I think.
Comment by Kovacs Zoltan (kovzol) - Monday, 20 August 2007, 10:40 GMT+2
The following buttons can be created without artistic knowledge (Arpad, please implement them soon):

Expression expansion: expand(#), HTML code: a^2+a (of course, all letters should be italic AND Times/Serif, ...^2 means ...<sub>2</sub>).

Factorization: factor(#), HTML code: a*(a+1) (* should be "middle dot", http://www.w3.org/TR/WD-entities-961125, &#183;).

GCD: gcd(#1,#2), HTML code: (a,b)

LCM: #1*#2/gcd(#1,#2), HTML code: [a,b].

Limit of sequences: limit(#,n,inf), HTML: lim a_n.

Differentiation: diff(#,x), HTML: f'(x).

Integration: integrate(#,x), HTML: &#8747; f(x)dx.

Partial fraction: partfrac(#,x), HTML: 1/x+2/(x+1). (Hint: try "formconv -O html" to get a nice HTML output.)

Sum: subst(n,k,ev(sum(#,n,1,k),simpsum)), HTML: &#931; a_n.

Product: subst(n,k,ev(prod(#,n,1,k),simpprod)), HTML: &#928; a_n.

Divide polynomial: divide(#1,#2), HTML: x^4:x^2-1.

Entering of matrices will be an interesting question. Before thinking about linear algebra, this should be discussed first.
Comment by Fekete Arpad (arpad) - Tuesday, 21 August 2007, 11:37 GMT+2
I think we should think about how could we solve the #1,#2 problem, if the user should press a maxima button at the end of the typing.
Comment by Fekete Arpad (arpad) - Thursday, 06 September 2007, 11:00 GMT+2
I have added some new limit buttons to the calculus layout. I adding putting some other buttons: "substituting x with a value and compute the numeric value of the expression - button", and all the calculus buttons we can think of. And perhaps support for differential equations, we could spare 1-2 button places for it (for the = sign).
Comment by Fekete Arpad (arpad) - Friday, 26 October 2007, 12:09 GMT+2
If we make the number theory layout, the following maxima functions can have a use:
binomial -- binomial coefficients
divsum -- sum of divisors
factorial -- the same as x!
fib -- the nth Fibonacci Number
fibtophi -- convert Fibonacci Numbers into expressions using phi
ifactors -- factorization ... with some afterwork
inrt -- integer nth root
next_prime -- the next prime after n
prev_prime -- the previous prime
primep -- is prime?
totient -- number of relative primes less than n

I think these are a quiet a lot features, the layout should be made.
Also, combinatorical things can be made, but I don't know if it should be put in this layout.
Comment by Fekete Arpad (arpad) - Monday, 29 October 2007, 10:49 GMT+2
Oh, I should do the matrix multiplication button for the linalg layout!
Comment by Fekete Arpad (arpad) - Monday, 29 October 2007, 11:31 GMT+2
ifactors gives a list, factor gives an expression... I think factor would be good, if the \cdot would be used for multiplication...