## Operator Index## Operator Index- Operator Index
## Infix operatorsThe following list gives an overview of Special Character Operators ordered by precedence. Precedece is given as a number. The lower the number the higher the binding. Operators of equal precedence are applied from left to right, i.e. Special Character Operators are left-associative. ` : ` (20) access to self defined` . ` (25) access to predefined data field` ° ` (25) degree operator` _ ` (50) access to element in list` ^ ` (50) power operator` * ` (100) multiplication (also of vectors and matrices)` / ` (100) division (also of vectors and matrices by scalars)` + ` (200) addition (also of vectors and matrices by scalars)` - ` (200) subtraction (also of vectors and matrices by scalars, binary and unary)` ! ` (200) logic not (unary)` == ` (300) equal` > ` (300) greater` < ` (300) smaller` >= ` (300) greater or equal` <= ` (300) smaller or equal` != ` (300) not equal` ~= ` (300) approximately equal` ~< ` (300) approximately smaller` ~> ` (300) approximately greater` ~>= ` (300) approximately greater or equal` ~<= ` (300) approximately smaller or equal` =:= ` (300) equal after evaluation` & ` (350) logic and` % ` (350) logic or` != ` (350) not equal` ~!= ` (350) approximately not equal` .. ` (350) list of numbers from/to` ++ ` (370) concatenation of lists` -- ` (370) list difference` ~~ ` (370) common elements of two lists` :> ` (370) append element to list` <: ` (370) prepend element to list` = ` (400) variable assignment` := ` (400) function definition` :=_ ` (400) clearing a definition` -> ` (400) modifier declaration` , ` (500) separator for lists and functions` ; ` (500) separator for statementsIn what follows we specify Cinderella's predefined functions. After the function name, the number of arguments is indicated in brackets. For easier reference, the functions are grouped in a few categories. Some functions may appear in several categories. Light blue functions are not documented yet. ## Basic Functionality## Control structures`if` (2) if operator`if` (3) if/else operator`trigger` (2) trigger a function on value change`while` (2) while loop`repeat` (2) repeat loop with # run-variable`repeat` (3) repeat loop with explicit run-variable`forall` (2) repeat loop with # run-variable`forall` (3) forall loop with explicit run-variable`eval` (1) force evaluation of an expression## Variable management`clear` (0) clear all variables`clear` (1) clear a specific variable`keys` (1) list of local keys associated with an object or a variable`createvar` (1) create a local variable`removevar` (1) destroy a local variable`regional` (arbitrary many arguments) create local variables`local` (arbitrary many arguments) create local variables (deprecated)`release` (arbitrary many arguments) remove local variables and return last value (deprecated)## Output` print` (1) print a value` println` (0) newline` println` (1) print a value followed by newline` clearconsole` (0) clear the output console` err` (1) debugging printout` assert` (2) conditional print for error checking`format` (2) convert a number to a string with specified precision`message` (1) show a message in the status line## Calculations## Arithmetic functions`sqrt` (1) square-root`exp` (1) exponential function`log` (1) natural logarithm`sin` (1) sine function`cos` (1) cosine function`tan` (1) tangent function`arcsin` (1) arcsine function`arccos` (1) arccosine function`arctan` (1) arctangent function`arctan2` (1) binary arctangent function`arctan2` (2) binary arctangent function`add` (2) addition`sub` (2) subtraction`mult` (2) multiplication`div` (2) division`mod` (2) modulo`pow` (2) power`abs` (1) absolute value`round` (1) rounded value`floor` (1) closest smaller integer`ceil` (1) closest larger integer`re` (1) real part`im` (1) imaginary part`conjugate` (1) complex conjugate`random` (1) random real number`randominteger` (1) random integer number`random` (0) random number between 0.0 and 1.0`randombool` (0) random boolean value`randomnormal` (0) (0,1)-normal distributed random real value`seedrandom` (1) seed the random generator## Boolean functions`not` (1) logical not`and` (2) logical and`or` (2) logical or`xor` (2) logical exclusive or## Predicates`isinteger` (1) test for integer`isreal` (1) test for real number`iscomplex` (1) test for complex number`iseven` (1) test for even integer`isodd` (1) test for odd integer`islist` (1) test for list`ismatrix` (1) test for nested list in matrix shape`isnumbervector` (1) test for list which is a number vector`isnumbermatrix` (1) test for list which is a number matrix`isstring` (1) test for string`isgeometric` (1) test for geometric object`isselected` (1) test for being selected`ispoint` (1) test for point`isline` (1) test for line`iscircle` (1) test for circle`isconic` (1) test for conic`ismass` (1) test for mass`issun` (1) test for sun`isspring` (1) test for spring`isundefined` (1) test for being undefined## String functions`text` (1) convert anything to a string`substring` (3) substring of a string from start index to end index`replace` (3) replace all occurences of a substring by another string`replace` (2) apply several replacements given in a list of replacement pairs`tokenize` (2) tokenize a string and return a list of tokens`indexof` (2) first index of a substring`indexof` (3) first index of a substring after position`length` (1) length of a string`format` (2) convert a number to a string with specified precision`sort` sort elements from a list, can in particular be applied to lists of strings` fontfamilies` (0) a list of all available fonts`unicode` (1) convert unicode into character`candisplay` (1) test if a string can be rendered by the current system and font`guess` (1) convert a number to a string guessing the numbers meaning`parse` (1) convert string to CindyScript expression## Calculus` d` (2) numerically differentiate a function` tangent` (2) calculate the tangent to a function` guess` (1) convert a number to a string guessing the numbers meaning` pslq` (1) same as `guess` ` roots` (1) determine the roots of a polynomial## Lists and Linear Algebra## Elementary list operations`take` (2) access the n-th element of a list`length` (1) length of a list`contains` (2) predicate for membership`append` (2) append an element to a list`prepend` (2) prepend an element to a list`concat` (2) concatenate two lists`common` (2) common elements of two lists`remove` (2) list difference## Traversing lists`forall` (2) forall loop with # run-variable`forall` (3) forall loop with explicit run-variable`apply` (2) apply a function to all elements of a list (run variable is #)`apply` (3) apply a function to all elements of a list (explicit run variable)`select` (2) select all elements of a list with a certain property (run variable is #)`select` (3) select all elements of a list with a certain property (explicit run variable)## High-level list operations`pairs` (1) list of all pairs of elements of a list`triples` (1) list of all triples of elements of a list`directproduct` (2) direct product of two lists`consecutive` (1) list of all pairs of consecutive elements of a list`cycle` (1) list of all pairs of consecutive elements of a list, cyclically closed`reverse` (1) reverse a list`set` (1) remove multiple instances of list elements, yielding a set`sort` (1) sort elements in a list`sort` (2) sort elements in a list by explicit function`flatten` (1) flatten the nesting depth of a list## Lists of geometric objects`allelements` (0) all elements of a construction`allpoints` (0) all points of a construction`alllines` (0) all lines of a construction`allsegments` (0) all segments of a construction`allcircles` (0) all circles of a construction`allconics` (0) all concics of a construction`allmasses` (0) all masses of a simulation`allsprings` (0) all springs of a simulation## Arithmetic list operations`sum` (1) sum of all list elements`sum` (2) sum of function values applied to all list elements (run variable is #)`sum` (3) sum of function values applied to all list elements (explicit run variable)`product` (1) product of all list elements`product` (2) product of function values applied to all list elements (run variable is #)`product` (3) product of function values applied to all list elements (explicit run variable)`min` (1) minimum of all list elements`min` (2) minimum of function values applied to all list elements (run variable is #)`min` (3) minimum of function values applied to all list elements (explicit run variable)`max` (1) maximum of all list elements`max` (2) maximum of function values applied to all list elements (run variable is #)`max` (3) maximum of function values applied to all list elements (explicit run variable)## Vector and matrix operations`zerovector` (1) create a zero vector of specified length`zeromatrix` (2) create a zero matrix of specified length`rowmatrix` (1) convert a vector to a row matrix` columnmatrix` (1) convert a vector to a column matrix` matrixrowcolumn` (1) number of rows and colums of a matrix` row` (2) a specific row of a matrix` column` (2) a specific column of a matrix` submatrix` (2) a specific minor of a matrix` transpose` (1) transpose of a matrix` dist` (2) numerical value of the distance of two vectors.` det` (1) determinant of a square matrix` hermiteanproduct` (2) hermitian scalar product` inverse` (1) inverse of a square invertible matrix` adj` (1) adjunct of a square matrix` eigenvalues` (1) eigenvalues of a square matrix` eigenvectors` (1) eigenvectors of a square matrix` linearsolve` (2) solve a system of linear equations` convexhull3d` (1) convex hull of a list of 3D points## Drawing## Drawing functions` draw` (1) draw a point` draw` (2) draw a segment` drawpoly` (1) draw polygon border from pointlist` drawpolygon` (1) same as `drawpoly` ` fillpoly` (1) draw filled polygon from pointlist` fillpolygon` (1) same as `fillpoly` ` drawcircle` (2) draw a circle from center and radius` fillcircle` (2) fill a circle from center and radius` drawall` (1) draw all elements in a list` connect` (1) connect a list of points` drawtext` (2) draw a string` drawtable` (2) draw a table` repaint` (0) force a repaint of the screen` repaint` (1) force a repaint after a delay## Drawing appearance` pointsize` (1) set point size` linesize` (1) set line size` textsize` (1) set text size` pointcolor` (1) set point color` linecolor` (1) set line color` textcolor` (1) set text color` color` (1) set overall color` alpha` (1) set overall alpha` gsave` (0) store colors, alpha, width, clip, and transformation to stack` grestore` (0) restore colors, alpha, width, clip and transformation from stack` greset` (0) reset colors, alpha, width, clip and transformation. Reset stack## Color functions` red` (1) red RGB-vector` green` (1) green RGB-vector` blue` (1) blue RGB-vector` grey` (1) grey RGB-vector` gray` (1) gray RGB-vector` hue` (1) hue RGB-vector## Function plotting` plot` (1) plot a function with # run variable` plot` (2) plot a function with explicit run variable` fillplot` (1) plot a function with integral like highlighting` fillplot` (2) highlight the difference between two functions` colorplot` (3) plot a region colored by the values of a function` drawfield` (1) draw the flux of a vector field` drawfieldcomplex` (1) draw the flux of a complex function` drawforces` (1) draw the flux of a force field` drawcurves` (2) draw an oscillograph for physics` mapgrid` (1) mapping a rectangular grid## Pixelgraphics` drawimage` (2) draw a pixelimage, w.r.t. one point` drawimage` (3) draw a pixelimage, w.r.t. two points` drawimage` (4) draw a pixelimage, w.r.t. three points` drawimage` (5) draw a pixelimage, w.r.t. four points` mapimage` (2) map a pixelimage, w.r.t. a function` imagesize` (1) getting the size of an image` imagergb` (3) inquiring the rgba value of a pixel` createimage` (3) create a pixelimage with name and specified size` clearimage` (1) erasing a pixelimage` removeimage` (1) removing a pixelimage` canvas` (3) using a pixelimage as canvas w.r.t. one point` canvas` (4) using a pixelimage as canvas w.r.t. two points` canvas` (5) using a pixelimage as canvas w.r.t. three points## Shapes` circle` (2) create a circular shape from point and radius` polygon` (1) create a polygonal shape from a list of points` halfplane` (2) create a halfplane shape` screen` (0) create a polygonal shape that covers the screen` fill` (1) fill a shape` draw` (1) draw the outline of a shape` clip` (1) set clippath to a shape## Geometric transformations` translate` (1) translate the global coordinate system` rotate` (1) rotate the global coordinate system` scale` (1) scale the global coordinate system` setbasis` (1) set global coordinate system to a translation basis` setbasis` (2) set global coordinate system to a similarity basis` setbasis` (3) set global coordinate system to an affine basis` setbasis` (4) set global coordinate system to a projective basis## Layer` autoclearlayer` (2) automatic clearing of layers` clearlayer` (1) clearing a layer` clrscr` (0) remove all drawings in a layer`layer` (1) setting the drawing layer` screenbounds` (0) determining screen bounds` screenresolution` (0) determining screen resolution## Geometry## Geometric Functions` moveto` (2) move point to position` meet` (2) intersection of two lines` join` (2) join of two points` perp` (1) perpendicular 2-dimensional vector` perp` (2) perpendicular of line through point` perpendicular` (2) perpendicular of line through point` para` (2) parallel of line through point` parallel` (2) parallel of line through point` cross` (2) cross-product of two 3-dimensional vectors` dist` (2) distance of two points` area` (3) area of triangle given by three points` det` (3) determinant of matrix of three points in homogeneous coordinates` crossratio` (4) cross-ratio of four points` complex` (1) convert xy-point to complex number` gauss` (1) convert complex number to xy-point` point` (1) set the geometric type of a vector to point` line` (1) setting the geometric type of a vector to line` geotype` (1) retrieve the geometric type of a vector` map` (2) obtain a transformation matrix for translations` map` (4) obtain a transformation matrix for similarities` map` (6) obtain a transformation matrix for affine transformations` map` (8) obtain a transformation matrix for projective transformations` pointreflect` (1) obtain a transformation matrix for reflection in a point` linereflect` (1) obtain a transformation matrix for reflection in a line` incidences` (1) list of incidences of a geometric object` locusdata` (1) list of points on a locus## Inspection`inspect` (1) list available attributes`inspect` (2) get an attribute`inspect` (3) set an attribute## Construction manipulation`createpoint` (2) create a point with name and position (since 2.1)`create` (3) create a an arbitrary geometric element`removeelement` (1) delete a named geometric element and the dependent elements of it`algorithm` (1) Getting the construction algorithm of an element`inputs` (1) Getting the defining objects of an element`element` (1) Getting a handle to an element## Sound## MIDI` playtone` (1) playing a MIDI note` stoptone` (1) muting a MIDI note` playfrequency` (1) playing a MIDI note with specified freqeuncy` playmelody` (1) playing a MIDI melody given by a list of notes` midiaddtrack` (1) assigning a MIDI melody given by a list of notes to a track` midistart` (0) starting the MIDI tracks` midistop` (0) halting the MIDI tracks` midispeed` (1) setting the speed of the MIDI tracks` midispeed` (0) getting the speed of the MIDI tracks` midiposition` (1) setting the sound pointer` midiposition` (0) getting the sound pointer` instrument` (1) specifying a MIDI instrument ` instrumentnames` (0) list all available MIDI instruments` midichannel` (1) setting the midi channel` midivolume` (1) setting the midi volume` midicontrol` (2) setting an arbitrary midi control value## Sampled Audio` playsin` (1) play a periodic signal` playfunction` (1) use a function to generate an audio sample` playwave` (1) use a list of numbers to generate an audio sample` stopsound` (0) stop all sample out lines## System functions## Mouse and key input` mover` (0) last moved object` mouse` (0) current mouse position in homogeneous coordinates` elementsatmouse` (0) lists all elements close to the current mouse position` key` (0) typed character` iskeydown` (1) asks if a key is currently pressed` keydownlist` (0) list of all kurrently pressed keys` amsdata` (0) data from a built-in gravity sensor` calibratedamsdata` (0) data from a built-in gravity sensor after calibration` createtool` (3) creating a custom toolbar` removetool` (1) removing a tool from a custom toolbar## Time` resetclock` (0) reset the internal clock` seconds` (0) seconds since last reset` simulationtime` (0) time synchronized with simulation` time` (0) current real-world time` date` (0) current real-world date` wait` (1) wait for a specified number of milliseconds## File IO` setdirectory` (1) set current directory` load` (1) load data from a file` import` (1) import program code from file` openfile` (1) open a file with specified name, return a handle` closefile` (1) close a file given by a handle` print` (2) print to a file` println` (2) println to a file` setdirectory` (1) set the current directory## Networking` openurl` (1) open a specified URL in a browser` javascript` (1) calling javascript` openconnection` (2) open a TCP port` print` (2) write to a TCP connection` println` (2) write to a TCP connection` flush` (1) flush output to a TCP port` readln` (1) read from a TCP connection` closeconnection` (1) close a TCP connection## Physics and Animations## Physics simulation` simulation` (0) handle to simulation` force` (1) probing force at a specific position` addforce` (2) apply a force to a mass` setforce` (2) set the force of a mass to a specific value## Animations` playanimation` (0) start the animation` pauseanimation` (0) pause the animation` stopanimation` (0) stop the animation## Other## Experimental and Undocumented OperatorsUse of the following operators is at your own risk.`freevariables` (1)`java` (1)`curview` (0)`curkernel` (0)`curgraphalgorithm` (0)`attribute` (2) read user attribute`attribute` (3) set user attribute`inspectinfo` (2) information on attribute`createmass` (3) create a mass-point with name and position and velocity (currently not supported)
Contributors to this page: Wurster
,
Kortenkamp
and
Richter
. The content on this page is licensed under the terms of the License. |
Login |