# Release Notes GeoGebra 3.2

This page gives an overview of the new features in GeoGebra 3.2 since version 3.0. Please see our fully revised GeoGebra Help document for more detailed descriptions of each new tool and command.

You can install GeoGebra by using our Webstart or Download option.

# New Tools

**Best Fit Line**(Select several points using the selection rectangle)**Compass**(Segment or two points for radius, then center point)**Ellipse through three points**(Two foci and a point on it)**Hyperbola by three points**(Two foci and a point on it)**Mirror point at circle****Parabola by focus and directrix****Record to Spreadsheet**

# New Features

## General Features

- Captions enabled for all objects
- New option "Force Reflex Angle" forces angles to be between 180 and 360 degrees
- Pressing <Enter> toggles the focus between the Input Bar and the Graphics View
- Improvements to the way translation works
- Dynamic colors (Properties -> Advanced tab). Set a function with range [0,1] for each color component (red, green, blue)
- Option for the grid to be bold
- Thumbnail saved in GGB files. (Now we need some volunteers to write a shell plugin for Windows Explorer and the equivalent for MacOS and Linux :)
- Worksheets resized if they were saved on a larger screen
- Isometric grid
- Comparing objects of different types doesn't return an error, can now compare Text and Image objects
- If the Points Export_1 and Export_2 exist, they will be used to define the export rectangle (Export_1 and Export_2 must be within the visible area)
- Checkbox now consistent across all platforms
- Options -> Checkbox Size -> Regular/Large
- Perpendicular check added to "Relation between two objects" Tool
- Messages from "Relation between two objects" Tool rewritten
- Angular Bisector Command and Tool renamed to Angle Bisector
- Line Bisector Command and Tool renamed to Perpendicular Bisector
- BMP import (Java 1.5+)
- Unicode fonts used in LaTeX equations
- LaTeX equations exported at full resolution
- in SVG and PDF export, option to export text as editable text or shapes. Stores the text either as text (lets you edit the text in eg InkScape) or as bezier curves (ie guaranteed to look the same even if the correct font is not installed).
- support for inline equations and linefeeds in LaTeX eg "if x=9 find $ \sqrt{ x } $"
- Angle entered in rotate dialog box is remembered (if it is in degrees)
- Show All Objects in Graphics View menu
- Option for up to 15 decimal places
- x^0, x^1, x^7, x^8, x^9 now displayed nicely
- PGF/TikZ export
- added degree symbol to axes units
- new command-line parameter:
`--antiAliasing=off`

- defines e to be the Euler number when used in expressions (unless it has already been defined to something else)
- templates for 2x2 and 3x3 matrix in LaTeX drop-down menu
- Option to display numbers as Significant Figures (3,5,10,15)
- New options Edit -> Select Descendents/Select Ancestors
- Double-click on an object in the Graphics View opens the redefine dialog, which now has a button to open the Properties dialog as well as 'OK' and 'Apply' buttons
- "Input Field" renamed to "Input Bar"
- "Algebra window" renamed to "Algebra View"
- "Graphics window" renamed to "Graphics View"
- Algorithm to decide which point to select added (rather than popping up a menu)
- Points in the form (a, b), (a + c, b + d) and (a + x(A), b + y(A)) are draggable (the
**variables**a & b are updated accordingly) - Ctrl + to zoom in, Ctrl - to zoom out
- New menu option "Recompute all Objects (F9)" which updates all the random numbers
- Set point style for lists of points
- Set line style for lists of lines
- Set filling style for lists of eg circles, polygons
- Set text style for lists of texts
- Animation of sliders
- f'(x) is automatically named f'(x) [ ie you can type just f'(x) rather than f'(x) = f'(x) ]
- Shift-right drag will now allow a zoom that allows the aspect ratio to change
- you can now set the line thickness of polygons created with eg Sequence[Polygon[(i,i),(i+1,i),(i+1,i+1)],i,1,3]
- polygons can now have line thickness 0 (ie no edges)
- In Captions, %v is replaced by the value and %n by the name, eg "The value of %n is %v"
- Captions can now be surrounded by <b>... or <i>... to get bold or italic
- Alt-click or F3: copy definition of selected object to the Input Bar
- F4: copy value of selected object to the Input Bar
- F5: copy name of selected object to the Input Bar
- Alt-scroll wheel: accelerated zoom
- Alt-dragging a selection rectangle puts a list of the objects selected in the Input Bar
- Hold down Alt when drawing a Line, Segment, Ray or Vector forces the angle to be a multiple of 15 degrees
- File -> Open shows a preview image when available
- Properties -> Color shows the color as an RGB triple in the preview pane eg (0,0,255)
- Area[Arc], Perimeter[Arc] work (treating the arc as a segment)
- sin(π x) now prints the π nicely
- Objects are now redefined from the input bar eg A = Point[f] then A = (1,2) will now make A a free object
- Shift-double-click on a point on line/circle/function/etc in the Algebra View will allow you to set the coordinates without redefining it
- Record to Spreadsheet Tool: you can now alt-click on a Point, Vector or Number to have its value(s) copied into columns A and B
- \\n replaced by newline in texts eg Text["GeoGebra\\nRocks",(3,4)]
- can't have functions called sin, cos etc
- New point styles (plus, diamond, triangles)
- Size of the drawing pad in pixels can be obtained with pixelsWidth = x(Corner[5]) and pixelsHeight = y(Corner[5])
- Export to Google Gadget and MediaWiki
- Options -> Algebra -> [ Value | Definition | Command ] changes how objects are displayed in the Spreadsheet and Algebra Views
- from 3.2.45.0 Ctrl-Shift-M copies the Dynamic Worksheet to the clipboard
- from 3.2.46.0 the Chooser Popup is disabled (when you click on multiple objects)

## Spreadsheet

- View -> Spreadsheet View to show the spreadsheet
- Cells can contain any GeoGebra object
- You can rename any GeoGebra object to eg D3 to put it in the spreadsheet
- Record to spreadsheet Tool (for Vectors, Points and Numbers)
- Right-click on a Point in the Graphics View -> Trace to spreadsheet option
- Ctrl-Alt-C copies values (not the formulae)

## Layers

- Layers (advanced tab) - higher numbered layers are drawn on top of lower numbered layers
- Layers are used to determine which object to select/drag when the user clicks on multiple objects
- Objects are grouped by layer for SVG export.
- Edit -> Select Current Layer (Ctrl-L) added (available only when objects of a single layer are selected)
- JavaScript control of layers - see below

## Clipboard Enhancements

- Image Tool - alt-click now pastes a bitmap from the clipboard
- "Clipboard" button added to "Export->Graphics View as Picture" dialog, and "Export" button renamed to "Save"
- Edit->Graphics View to Clipboard added (also in File->Export submenu as before)

## Complex Numbers

GeoGebra now has support for complex numbers.

- If the variable "i" has not already been defined, it is recognised as the complex number 0 + 1i
- ie you can type complex numbers into the input bar eg z = 3 + 4i

- Addition, subtraction, multiplication, division:

(2 + i) + (1 - 2i) = 3 - i (2 + i) - (1 - 2i) = 1 + 3i (2 + i) * (1 - 2i) = 4 - 3i (2 + i) / (1 - 2i) = 0 + i

- Complex powers:

(3 + i) ^ 2 = 8 + 6i

- GeoGebra also recognises expressions involving real and complex numbers:

3 + (4 + 5i) = 7 + 5i 3 - (4 + 5i) = -1 - 5i 3 / i = 0 - 3i 3 * (1 + 2i) = 3 + 6i

## Matrix operations

**GeoGebra now has support for matrices.**

[1 2 3] [4 5 6] is represented in GeoGebra as { {1,2,3}, {4,5,6}, {7,8,9} } [7 8 9]

**Permitted operations:**

- <Matrix> * <Number>

- <Matrix> * <Matrix>

{{1,3,5},{2,4,6}}*{{11,14},{12,15},{13,16}}

- <Matrix> + <Matrix>

- <Matrix> - <Matrix>

- Invert[ <Matrix> ]

- Transpose[ <Matrix> ]

- Determinant[ <Matrix> ]

- 2x2 Matrix * Point (or Vector)

{{1,2}, {3,4}} * (3,4)

- 3x3 Matrix * Point (or Vector)

{{1,2,0}, {3,4,0}, {5,6,1} } * (3,4) This is a special case for affine transformations. A dummy z-coordinate of 1 in used for the point. So the example in fact does this: {{1,2,0}, {3,4,0}, {5,6,1} } * { {3,4,1} } and discards the resulting z-coordinate (which is always 1)

## List operations

**You can now compare two lists:**

- <list> == <list>

Compares the two lists and gives you true/false.

- <list> != <list>

Compares the two lists and gives you true/false.

**You can now perform arithmetic operations on lists:**

- <list> + <list>

Adds corresponding elements of two lists of the same length.

- <list> + <number>

Adds the number to every element of the list.

- <list> - <list>

Subtracts elements of second list from corresponding element of first list (if lists are of the same length).

- <list> - <number>

Subtracts the number from every element of the list.

- <list> * <list>

Multiplies corresponding elements of two lists of the same length, ... unless the two lists are compatible matrices, in which case matrix multiplication is used

- <list> * <number>

Multiplies every list element with the number.

- <list> / <list>

Divides elements of first list by corresponding element of second list (if lists are of the same length).

- <list> / <number>

Divides every list element by the number.

- <number> / <list>

Divides the number by every element of the list.

- <list> ^2

Squares every element of the list.

- sin( <list> )

Calculates sin(element) for every element of the list.

- x( <list> ) returns a list containing the x-coordinates of the points in <list>

- etc

# Commands

## Renamed Commands

- AngularBisector[] was renamed to
**AngleBisector[]** - Diameter[] was renamed to
**ConjugateDiameter[]** - Eccentricity[] was renamed to
**LinearEccentricity[]** - FirstAxis[] was renamed to
**MajorAxis[]** - FirstAxisLength[] was renamed to
**SemiMajorAxisLength[]** - LineBisector[] was renamed to
**PerpendicularBisector[]** - Perpendicular[] was renamed to
**PerpendicularLine[]** - SecondAxis[] was renamed to
**MinorAxis[]** - SecondAxisLength[] was renamed to
**SemiMinorAxisLength[]** **UK English:**Extremum[] was renamed to**TurningPoint[]**

## New Commands

**Append[ <List>, <Object> ]**

Appends the object to the list

e.g. Append[{1, 2, 3}, (5, 5)] gives you {1, 2, 3, (5, 5)}

**Append[ <Object>, <List> ]**

Appends the list to the object

e.g. Append[(5, 5), {1, 2, 3}] gives you {(5, 5), 1, 2, 3}

**AxisStepX[]****AxisStepY[]**

Return the current step for the x-axis or y-axis respectively. Together with the Corner[n] and Sequence[] commands, these allow you to create custom axes.

**BarChart[ <Start Value>, <End Value>, <List of Heights> ]**

e.g. BarChart[10, 20, {1,2,3,4,5} ] gives you a bar chart with five bars of specified height in the interval [10, 20]

**BarChart[ <Start Value>, <End Value>, <Expression>, <Variable>, <From Number>, <To Number> ]****BarChart[ <Start Value>, <End Value>, <Expression>, <Variable>, <From Number>, <To Number>, <Step Width> ]**

e.g. p = 0.1 q = 0.9 n = 10 BarChart[ -0.5, n + 0.5, BinomialCoefficient[n,k]*p^k*q^(n-k), k, 0, n ]

**BarChart[ <List of Raw Data>, <Width of Bars> ]**

e.g. BarChart[ {1,1,1,2,2,2,2,2,3,3,3,5,5,5,5}, 1]

**BarChart[ <List of Data>, <List of Frequencies>]**

<List of Data> must be a list where the numbers go up by a constant amount

e.g. BarChart[ {10,11,12,13,14}, {5,8,12,0,1}] e.g. BarChart[{5, 6, 7, 8, 9}, {1, 0, 12, 43, 3}] e.g. BarChart[{0.3, 0.4, 0.5, 0.6}, {12, 33, 13, 4}]

**BarChart[ <List of Data>, <List of Frequencies>, <Width of Bars> ]**

<List of Data> must be a list where the numbers go up by a constant amount

e.g. leaves gaps between bars: BarChart[ {10,11,12,13,14}, {5,8,12,0,1}, 0.5] e.g. line graph: BarChart[ {10,11,12,13,14}, {5,8,12,0,1}, 0]

**BinomialCoefficient[ <Number n>, <Number r>]**

Calculates the binomial coefficient "n choose r".

**BoxPlot[ <yOffset>, <yScale>, <List of Raw Data> ]**

e.g. BoxPlot[0, 1, {2,2,3,4,5,5,6,7,7,8,8,8,9} ]

**BoxPlot[ <yOffset>, <yScale>, <Start Value>, <Q1>, <Median>, <Q3>, <End Value> ]**

e.g. BoxPlot[0, 1, 2, 3, 4, 5, 6 ]

**CellRange[ <Start Cell>, <End Cell>]**

e.g. CellRange[A1,B2] is the same as A1:B2

**Column[ <Spreadsheet Cell> ]**

Returns the column of the cell as a number (starting at 1)

**ColumnName[ <Spreadsheet Cell> ]**

Returns the column name of the cell as a text

**ConstructionStep[]**

Returns the current construction protocol step

**ConstructionStep[ <Object> ]**

Returns the construction protocol step for the Object

**Corner[ <Number n of Corner> ]**

Creates a point at the corner of the Graphics View (n = 1, 2, 3, 4) Note: This point is not visible on screen.

**Corner[ <Image>, <Number n of Corner> ]**

Creates a point at the corner of the image (n = 1, 2, 3, 4)

**Corner[ <Text>, <Number n of Corner>]**

Creates a point at the corner of the text (n = 1, 2, 3, 4)

**CorrelationCoefficient[ <List of x-Coordinates> , <List of y-Coordinates> ]****CorrelationCoefficient[ <List of Points> ]**

This command was renamed from "PMCC" to "CorrelationCoefficient" (February 17, 2009), Product moment correlation coefficient

**CountIf[ <Condition>, <List> ]**

Counts the number of elements in the list satisfying the condition

e.g. CountIf[ x < 3, {1, 2, 3, 4, 5} ] e.g. CountIf[ x<3, A1:A10] where A1:A10 is a range of cells in the spreadsheet

**Covariance[ <List 1 of Numbers> , <List 2 of Numbers> ]**

Calculates the covariance using the elements of both lists

**Covariance[ <List of Points> ]**

Calculates the covariance using the x- and y-coordinates of the points

**Determinant[ <Matrix> ]**

Returns the determinant of the matrix

e.g. Determinant[ { {1, 2}, {3, 4} } ]

**Ellipse[ <Point A>, <Point B>, <Point C> ]**

Draws an ellipse with foci A and B passing through C

**Expand[ <Function> ]**

Multiplies out the brackets and simplifies

e.g. Expand[(x+3)(x-4)] gives you f(x) = x^2 - x - 12 e.g. Expand[ x^3 + x^3 ] gives f(x) = 2 x^3

**Factor[ <Polynomial> ]**

Factors the polynomial

e.g. Factor[x^2+x-6] gives you f(x) = (x-2)(x+3)

**First[ <List> ]**

Returns the first element of the list

**First[ <List>, <Number n of Elements> ]**

Returns a list containing just the first n elements of the list.

**FitExp[ <List of Points> ]**

Calculates the exponential regression curve

**FitLine[ <List of Points> ]**

Calculates the y on x regression line of the points.

**FitLineX[ <List of Points> ]**

Calculates the x on y regression line of the points.

**FitLog[ <List of Points> ]**

Calculates the logarithmic regression curve

**FitLogistic[ <List of Points> ]**

Calculates the regression curve in the form a/(1+b e^(-kx)) The first and last datapoint should be fairly close to the curve. The list should have at least 3 points, preferably more.

**FitPoly[ <List of Points>, <Degree n of Polynomial> ]**

Calculates the regression polynomial of degree n

**FitPow[ <List of Points> ]**

Calculates the regression curve in the form a x^b. All points used need to be in the first quadrant of the coordinate system.

**FitSin[ <List of Points> ]**

Calculates the regression curve in the form a + b sin(cx+d) The list should have at least 6 points, preferably more. The list should cover at least two extremal points. The first two local extremal points should not be too different from the absolute extremal points of the curve.

**FormulaText[ <Object> ]****FormulaText[ <Object>, <Boolean for Substitution of Values for Variables> ]**

Returns the formula for the object as LaTeX text

e.g. a = 2 f(x) = a x^2 FormulaText[f] and FormulaText[f, true] both return 2 x^2 (as a LaTeX text) FormulaText[f, false] returns a x^2 (as a LaTeX text)

**FractionText[ <Number> ]**

Converts the number to a fraction, which is displayed as a (LaTeX) text object

e.g. a: y = 1.5 x + 2 FractionText[Slope[a]]

**GCD[ <Number a>, <Number b> ]****GCD[ <List of Numbers> ]**

Greatest common divisor (UK_English HCF Highest common factor)

**Histogram[ <List of Class Boundaries>, <List of Heights> ]**

e.g. Histogram[ {1,2,4,8}, {3,5,7} ]

**Histogram[ <List of Class Boundaries>, <List of Raw Data> ]**

e.g. Histogram[{1,1.5,2,4},{1.0,1.1,1.1,1.2,1.7,1.7,1.8,2.2,2.5,4.0}]

**Hyperbola[ <Point A>, <Point B>, <Point C> ]**

Draws a hyperbola with foci A and B passing through C

**Insert[ <Object>, <List>, <Position> ]**

Inserts the object in the list at the given position.

e.g. Insert[ x^2, list1, 3 ]

If position is negative, the position is counted from the right

e.g. Insert[ (1,2), list1, -1 ] places the point at the end of the list

**Insert[ <List 1>, <List 2>, <Position> ]**

Inserts all elements of list1 in list2 at the given position.

e.g. Insert[ {11, 12}, {1, 2, 3, 4, 5}, 3 ] gives you {1, 2, 11, 12, 3, 4, 5}

If position is negative, the position is counted from the right

e.g. Insert[ {11, 12}, {1, 2, 3, 4, 5}, -2 ] places list1 at the end of list2 before its last element and gives you {1, 2, 3, 4, 11, 12, 5}

**Intersection[ <List 1>, <List 2> ]**

Gives you all elements that are part of both lists

**InverseNormal[ <Mean>, <Standard Deviation>, <Probability> ]**

Calculates the function inversephi(x) * ( standard deviation ) + ( mean ) where inversephi(x) is the inverse of the pdf for N(0,1) (pdf = probability density function, ie a non-negative function with area 1) Returns the x-coordinate which has the given probability to the left under the normal distribution curve.

**Invert[ <Matrix> ]**

Inverts a matrix

e.g. Invert[ { {1, 2}, {3, 4} } ]

**IsDefined[ <Object> ]**

Returns true or false depending on whether an object is defined or not.

**IsInteger[ <Number> ]**

Returns true or false depending whether the input is an integer or not.

**Join[ <List 1>, <List 2>, ...]**

Joins the two (or more) lists (no re-ordering of elements, keeps all elements even if they are the same)

e.g. Join[ {1,2,3}, {4,5,6} ]

**Join[ <List of Lists> ]**

Joins the sub-lists into one longer list (no re-ordering of elements, keeps all elements even if they are the same)

e.g. Join[ { {1,2,3}, {4,5,6}, {7,8,9} } ]

**KeepIf[ <Condition>, <List> ]**

e.g. KeepIf[ x<3, {1,2,3,4,1,5,6} ] returns {1,2,1}

**Last[ <List> ]**

Returns the last elements of the list.

**Last[ <List> , <Number n of Elements>]**

Returns a list containing just the last n elements of the list.

- Command
**LaTeX**renamed to**FormulaText[]**(March 2, 2009)

**LCM[ <Number a>, <Number b> ]****LCM[ <List of Numbers> ]**

Lowest common multiple (UK) of two numbers a and b or elements of the list (Least common multiple (US))

**LetterToUnicode[ <Text> ]**

Turns a single letter into its Unicode number

e.g. LetterToUnicode["a"] = 97

- Eccentricity[ <Conic> ] renamed to
**LinearEccentricity[ <Conic> ]**

Calculates the distance between a conic's center and its focus, or one of its two foci.

**Mean[ <List of Numbers> ]**

Calculates the mean of the list elements

**MeanX[ <List of Points> ]**

Mean of the x coordinates of the points in the list

**MeanY[ <List of Points> ]**

Mean of the y coordinates of the points in the list

**Median[ <List of Numbers> ]**

Determines the median of the list elements

**Mirror**RENAMED to**Reflect**, New:**Reflect[ <Point>, <Circle> ]**

Inverts the point in the circle

**Mode[ <List of Numbers> ]**

Determines the mode(s) of the list elements

Mode[{1,2,3,4}] returns {} Mode[{1,1,1,2,3,4}] returns {1} Mode[{1,1,2,2,3,3,4}] returns {1,2,3}

**Name[ <Object> ]**

Returns the name of an object as a text. The Name[] command is the opposite of the Object[] command

**Normal[ <Mean>, <Standard Deviation>, <Variable Value> ]**

Calculates the function ( phi(x) - mean ) / (standard deviation) where phi(x) is the pdf for N(0,1) (pdf = probability density function, ie a non-negative function with area 1) Returns the probability for a given x-coordinate value (or area under the normal distribution curve to the left of the given x-coordinate)

**Object[ <Name of Object as Text> ]**

Returns the object for a given name which is given as a text (static and/or dynamic). The Object[] command is the opposite of the Name[] command.

eg If points A1, A2,..., A20 exist and slider n = 2, Object[ "A" + n ] gives you point A2.

**PMCC[ <List of x-Coordinates> , <List of y-Coordinates> ]****PMCC[ <List of Points> ]**

This command was renamed to CorrelationCoefficient (February 17, 2009), Product moment correlation coefficient

**Point[ <Polygon> ]**

Creates a point that is restricted to the edges of a polygon

**Polynomial[ <List of Points> ]**(in 3.0, undocumented)

Interpolation polynomial of degree (n-1) through n points.

**Product[ <List> ]**

Calculates the product of all list elements

**Q1[ <List of Numbers> ]**

Determines the lower quartile of the list elements

**Q3[ <List of Numbers> ]**

Determines the upper quartile of the list elements

**RandomBetween[ <Minimum Integer>, <Maximum Integer> ]**

Generates a random integer between min and max (inclusive). The numbers min and max need to be integers.

**RandomBinomial[ <Number n of Trials>, <Probability p> ]**

Generates a random number from a binomial distribution with n trials and probability p

**RandomNormal[ <Mean>, <Standard Deviation>]**

Generates a random number from a normal distribution

**RandomPoisson[ <Mean> ]**

Generates a random number from a poisson distribution

**Reflect[ <Point>, <Circle> ]**
Inverts the point in the circle

**RemoveUndefined[ <List> ]**

Removes undefined objects from a list

e.g. RemoveUndefined[Sequence[(-1)^i, i, -3, -1, 0.5]]

**Reverse[ <List> ]**

Reverses the order of a list

**Rotate[ <Vector>, <Angle>, <Point> ]**

Rotates a vector around a point by given angle

**Row[ <Spreadsheet Cell>]**

Returns the row number of a spreadsheet cell (starting at 1)

**SD[ <List of Numbers> ]**

Calculates the standard deviation of list elements

**SigmaXX[ <List of Numbers> ]****SigmaXX[ <List of Points> ]**

Calculates the sum of squares (of list elements, or x coordinates of points)

e.g. you can work out the variance of a list with SigmaXX[list]/Length[list] - Mean[list]^2

**SigmaXY[ <List of x-Coordinates> , <List of y-Coordinates> ]****SigmaXY[ <List of Points> ]**

Calculates the sum of (the product of the x and y coordinates). For bivariate data, SigmaXY works out sum of (x coord times y coord)

e.g. you can work out the covariance of a list of points with SigmaXY[points]/Length[points] - MeanX[points] * MeanY[points] (if 'points' is a list of Points)

**SigmaYY[ <List of Points> ]**

Calculates the sum of squares of y coords. For bivariate data, SigmaYY = sum of (y coord ^2)

**Simplify[ <Function> ]**

e.g. Simplify[x + x + x]

**Sort[ <List> ]**

Sorts a list of numbers, text objects or points (sorts points by x-coordinate) e.g. Sort[{3, 2, 1}] e.g. Sort[{"pears", "apples", "figs"}] e.g. list1 = Sort[{A, B, C}] list2 = Sequence[Segment[Element[list1, i], Element[list1, i + 1]], i, 1, Length[list1] - 1]

**Sum[ <List> ]**

Calculates the sum of all list elements. Works for numbers, points & vectors, text and functions

e.g. Sum[{1,2,3}] gives you a = 6 e.g. Sum[{x^2,x^3}] gives you f(x)=x^2 + x^3 e.g. Sum[Sequence[i,i,1,100]] gives you a = 5050 e.g. Sum[Sequence[1 / (2 k - 1) sin((2 k - 1) x), k, 1, 20]] e.g. Sum[{(1, 2), (2, 3)}] gives you point A = (3, 5) e.g. Sum[{(1, 2), 3}] gives you point B = (4, 2) e.g. Sum[ {"a","b","c"} ] gives "abc"

**Sum[ <List>, <Number n of Elements> ]**

Calculates the sum of the first n list elements. Works for numbers, points & vectors, text and functions

e.g. Sum[{1, 2, 3, 4, 5, 6}, 4] gives you 10

**Sxx[ <List of Numbers> , <List of Numbers> ]**

Calculates the statistic sigma(x^2) - sigma(x)*sigma(x)/n

**Sxx[ <List of Points> ]**

Calculates the statistic sigma(x^2) - sigma(x)*sigma(x)/n

**Sxy[ <List of Numbers> , <List of Numbers> ]**

Calculates the statistic sigma(xy) - sigma(x)*sigma(y)/n

**Sxy[ <List of Points> ]**

Calculates the statistic sigma(xy) - sigma(x)*sigma(y)/n

**Syy[ <List of Numbers> , <List of Numbers> ]**

Calculates the statistic sigma(y^2) - sigma(y)*sigma(y)/n

**Syy[ <List of Points> ]**

Calculates the statistic sigma(y^2) - sigma(y)*sigma(y)/n

These quantities are simply unnormalized forms of the variances and covariance of X and Y given by Sxx = N var(X) Syy = N var(Y) Sxy = N cov(X,Y) http://mathworld.wolfram.com/CorrelationCoefficient.html So for example you can work out the correlation coefficient with: Sxy[points] / sqrt(Sxx[points] Syy[points]) if 'points' is a list of Points.

**TableText[ <List 1>, <List 2>, <List 3>, ... ]**

Creates a text that contains the table of list objects.

**TableText[ <List 1>, <List 2>, <List 3>, ... , <Alignment of Text>]**

The optional text controls the orientation and alignment of the table. Possible values: "vl", "vc", "vr", "v", "h", "hl", "hc", "hr". Default is "hl".

v = vertical, i.e. lists are columns h = horizontal, i.e. lists are rows l = left aligned r = right aligned c = centered e.g. TableText[ { x^2, x^3, x^4 } ] 1 row, left aligned e.g. TableText[ Sequence[ i^2, i, 1, 10] ] 1 row, left aligned e.g. TableText[{1,2,3,4},{1,4,9,16},"v"] 2 columns, left aligned e.g. TableText[{1,2,3,4},{1,4,9,16},"h"] 2 rows, left aligned e.g. TableText[{11.2,123.1,32423.9,"234.0"},"r"] 1 row right aligned

**Take[ <List> , <Start Position m>, <End Position n> ]**

Returns a list containing the elements from positions m to n of the list.

**Text[ <Object> ]****Text[ <Object>, <Boolean for Substitution of Values for Variables> ]****Text[ <Object>, <Point> ]****Text[ <Object>, <Point>, <Boolean for Substitution of Values for Variables> ]**

Returns the formula for the object as a text object, with or without variables substituted. Point defines where the text will be drawn.

e.g. a = 2 c = a^2 Text[c] and Text[c, true] both return "4" Text[c, false] returns "a^2" Text["hello", (2,3)] draws the text at (2,3)

**TextToUnicode[ <Text> ]**

Turns some text into a list of Unicode numbers, one for each character

e.g. TextToUnicode["Some text"] gives you {83, 111, 109, 101, 32, 116, 101, 120, 116} e.g. if text1 is "hello", then TextToUnicode[text1] gives you list1 = {104, 101, 108, 108, 111}

**Transpose[ <Matrix> ]**

Transposes a matrix

e.g. Transpose[ { {1, 2}, {3, 4} } ]

**TrapezoidalSum[ <Function>, <Start x-Value>, <End x-Value>, <Number of Trapezoids> ]**

Works the same way as UpperSum[] and LowerSum[]

e.g. TrapezoidalSum[ x^2, 1, 2, 5]

**UnicodeToLetter[ <Integer> ]**

Converts Unicode number back into a letter

e.g. UnicodeToText[97] = "a"

**UnicodeToText[ <List of Integers> ]**

Converts Unicode numbers back into text

e.g. UnicodeToText[{83, 111, 109, 101, 32, 116, 101, 120, 116}] = "Some text"

**Union[ <List 1>, <List 2>]**

Joins lists and removes items that appear multiple times

**Variance[ <List of Numbers> ]**

Calculates the variance of list elements

# New Applet Parameters

- <param name="enableLabelDrags" value="false"/>
- <param name="enableChooserPopups" value="false"/>

Description of all GeoGebra Applet Parameters

# New Command Line Arguments

`--enableUndo`

`--antiAliasing`

`--fontSize`

`--showSplash`

`--sugar`

Description of all Command Line Arguments

# New JavaScript commands

- void setLayer(String objName, int)
- int getLayer(String objName)
- void setLayerVisible(int layer, boolean visible)
- String evalMathPiper(String command)
- String getIPAddress()
- String getHostname()
- void renameObject(String oldObjName, String newObjName)
- void startAnimating(String objName, boolean start)
- void setAnimationSpeed(String objName, double speed)
- void debug(String string)
- void setOnTheFlyPointCreationActive(boolean flag)
- void hideCursorWhenDragging(boolean flag)

Also the JavaScript function ggbOnInit() is called (if it exists) when GeoGebra starts.

Description of all GeoGebra JavaScript Methods

# GeoGebra Keyboard Shortcuts

List of Keyboard Shortcuts

In additon, you can now enter some Greek and mathematical symbols directly in the input bar and spreadsheet:

alt-= -> not equals

alt-+ -> plus or minus

alt-- -> minus or plus

alt-< -> less than or equal

alt-> -> greater than or equal

alt-, -> less than or equal

alt-. -> greater than or equal

alt-a -> alpha

alt-b -> beta

alt-d -> delta

alt-e -> Euler e

alt-f -> phi

alt-g -> gamma

alt-l -> lambda

alt-m -> mu

alt-o -> degree sign (also works in the slider dialog for min, max and increment)

alt-p -> pi (also works in the slider dialog for min, max and increment)

alt-s -> sigma

alt-t -> theta

alt-w -> omega

alt-0 -> to the power of 0

alt-1 -> to the power of 1

alt-2 -> to the power of 2

alt-3 -> to the power of 3

alt-4 -> to the power of 4

alt-5 -> to the power of 5

alt-6 -> to the power of 6

alt-7 -> to the power of 7

alt-8 -> to the power of 8

alt-9 -> to the power of 9

Press shift as well for upper-case Greek letters.

(on Mac OSX use ctrl instead of alt)

# GeoGebra's XML File Format

GeoGebra's XML file format is documented at GeoGebra XML Format

# License

You are free to copy, distribute and transmit GeoGebra for non-commercial purposes. Please see the GeoGebra license for details: http://www.geogebra.org/download/license.txt