DimensionMismatch=Function "{0}" dimension miss match expected {1} found {2}.
BadDimensions=Function "{0}" bad dimensions {1}.


field.dictionary.FieldDictComponents.Clear=clear
field.dictionary.FieldDictComponents.Remove=remove
field.dictionary.FieldDictComponents.Get=get
field.dictionary.FieldDictComponents.GetOr=getOr
field.dictionary.FieldDictComponents.Put=put
field.dictionary.FieldDictComponents.Size=size
field.dictionary.FieldDictComponents.ContainsKey=containsKey
field.dictionary.FieldDictComponents.Keys=keys
field.dictionary.FieldDictComponents.Entries=entries
field.dictionary.FieldDictComponents.Values=values
field.dictionary.FieldDictComponents.HashMap=hashMap
field.dictionary.FieldDictComponents.LinkedMap=linkedMap
field.dictionary.FieldDictComponents.TreeMap=treeMap
field.dictionary.FieldDictComponents.TreeMap.description=A map with keys sorted using a field. 
field.dictionary.FieldDictComponents.EntriesIterable=! entriesIter - not implemented by default
field.dictionary.FieldDictComponents.KeysIterable=! keysIter - not implemented by default
field.dictionary.FieldDictComponents.ValuesIterable=! valuesIter - not implemented by default

# parameter is the unique instance number
com.singularsys.extensions.lambda.LambdaFunGenerator.nameFormat=\u03BB{0}
com.singularsys.extensions.lambda.LambdaFunGenerator.lhsArgError=Left hand arguments of a lambda function should either a variable or a list of variables. Found {0}
com.singularsys.extensions.lambda.Signature.missmatch=Argument {1} does not match signature {0}

com.singularsys.extensions.chained.ChainedDefine.Chained=Chained
com.singularsys.extensions.chained.ChainedDefine.Chainable=Chainable
com.singularsys.extensions.chained.ChainedDefine.BinarySwapped=BinarySwapped
com.singularsys.extensions.chained.ChainedDefine.description=define a regular or chained function from a lambda expression
com.singularsys.extensions.chained.UnchainingRewriteRule.description=rewrite chained function as nested function
com.singularsys.extensions.lambda.Define.AddPrecOption=Prec=
com.singularsys.extensions.lambda.Define.Binary=Binary
com.singularsys.extensions.lambda.Define.InsertPrecOption=IPrec=
com.singularsys.extensions.lambda.Define.Operator=Operator
com.singularsys.extensions.lambda.Define.Overload=Overload=
com.singularsys.extensions.lambda.Define.sep=,
com.singularsys.extensions.lambda.Define.Left=Left
com.singularsys.extensions.lambda.Define.Prefix=Prefix
com.singularsys.extensions.lambda.Define.Right=Right
com.singularsys.extensions.lambda.Define.Suffix=Suffix
com.singularsys.extensions.lambda.Define.Unary=Unary
com.singularsys.extensions.lambda.Define.Associative=Associative
com.singularsys.extensions.lambda.Define.Commutative=Commutative
com.singularsys.extensions.lambda.Define.Function=Function
com.singularsys.extensions.lambda.Define.Chained=Chained
com.singularsys.extensions.lambda.AnyMatch.ANY.description=matches any element of a sequence
com.singularsys.extensions.lambda.AnyMatch.ALL.description=matches all element of a sequence
com.singularsys.extensions.lambda.AnyMatch.NONE.description=matches none of the element of a sequence
com.singularsys.extensions.lambda.FirstMatchOr.description=find the first matching element of a sequence or a default value

com.singularsys.extensions.rewrite.BinaryToNaryRule.description=(a+b)+c -> +(a,b,c)
com.singularsys.extensions.rewrite.NaryToBinaryRule.description=(a,b,c) -> (a+b)+c
com.singularsys.extensions.rewrite.CollectPowers.description=x*x -> x^2 and x^n*x -> x^(n+1)
com.singularsys.extensions.rewrite.ExpandBrackets.description=(a+b)*(c+d) -> a*c+a*d+b*c+b*d
com.singularsys.extensions.rewrite.ExpandPower.description=(a+b)^2 -> a^2+2*a*b+b^2


com.singularsys.extensions.rewrite.matrix.AddVectorMatrixRule.description=[a,b,c] + [d,e,f] -> [a+d,b+e,c+f]
com.singularsys.extensions.rewrite.matrix.CrossProductRule.description=[a,b,c] ^^ [d,e,f] -> [b*f-c*e,c*d-a*f,a*e-b*d]
com.singularsys.extensions.rewrite.matrix.DotProductRule.description=[a,b,c] . [d,e,f] -> [a*d,b*e,c*f]
com.singularsys.extensions.rewrite.matrix.MultiplyVectorMatrixRule.description=[[a,b],[c,d]] * [e,f] -> [b*f-c*e,c*d-a*f,a*e-b*d], [[a,b],[c,d]] * [[p,q],[r,s]] -> [[a*p+b*r,a*q+b*s],[c*p+d*r,c*q+d*s]]
com.singularsys.extensions.rewrite.matrix.ScalarMultiplicationRule.description=d * [a,b,c] -> [d*a,d*b,d*c]
com.singularsys.extensions.rewrite.matrix.SubtractVectorMatrixRule.description=[a,b,c] - [d,e,f] -> [a-d,b-e,c-f]
com.singularsys.extensions.rewrite.matrix.ScalarDivisionRule.description=[a,b,c] / d -> [a/d,b/d,c/d]

BigDecimalFunctionTable.sqrt=sqrt
BigDecimalFunctionTable.pow=pow
BigDecimalFunctionTable.binom=binom

ChainedFunctionSet.accumulate=accumulate
ChainedFunctionSet.apply=apply
ChainedFunctionSet.chained=chained
ChainedFunctionSet.chained.description=apply a lambda function with multiple arguments in a chain
ChainedFunctionSet.count=count
ChainedFunctionSet.define=define
ChainedFunctionSet.distinct=distinct
ChainedFunctionSet.filter=filter
ChainedFunctionSet.first=first
ChainedFunctionSet.firstOr=firstOr
ChainedFunctionSet.flatten=flatten
ChainedFunctionSet.fold=fold
ChainedFunctionSet.foldOr=foldOr
ChainedFunctionSet.iterate=iterate
ChainedFunctionSet.last=last
ChainedFunctionSet.limit=limit
ChainedFunctionSet.map=map
ChainedFunctionSet.min=min
ChainedFunctionSet.max=max
ChainedFunctionSet.merge=merge
ChainedFunctionSet.numericsort=nsort
ChainedFunctionSet.numericsort.description=numeric sort
ChainedFunctionSet.reversenumericsort=rsort
ChainedFunctionSet.reversenumericsort.description=reverse numeric sort
ChainedFunctionSet.reduce=reduce
ChainedFunctionSet.skip=skip
ChainedFunctionSet.sort=sort
ChainedFunctionSet.sum=sum
ChainedFunctionSet.sum.description=sum the elements of a sequence (Terminal)
ChainedFunctionSet.while=while
ChainedFunctionSet.append=append
ChainedFunctionSet.anyMatch=anyMatch
ChainedFunctionSet.allMatch=allMatch
ChainedFunctionSet.noneMatch=noneMatch
ChainedFunctionSet.firstMatchOr=firstMatchOr

ChainableFunctionSet.accumulate=accumulate
ChainableFunctionSet.apply=apply
ChainableFunctionSet.chained=chained
ChainableFunctionSet.chained.description=apply a lambda function with multiple arguments in a chain
ChainableFunctionSet.count=count
ChainableFunctionSet.define=define
ChainableFunctionSet.distinct=distinct
ChainableFunctionSet.filter=filter
ChainableFunctionSet.first=first
ChainableFunctionSet.firstOr=firstOr
ChainableFunctionSet.flatten=flatten
ChainableFunctionSet.fold=fold
ChainableFunctionSet.foldOr=foldOr
ChainableFunctionSet.iterate=iterate
ChainableFunctionSet.last=last
ChainableFunctionSet.limit=limit
ChainableFunctionSet.map=map
ChainableFunctionSet.min=min
ChainableFunctionSet.max=max
ChainableFunctionSet.merge=merge
ChainableFunctionSet.numericsort=nsort
ChainableFunctionSet.numericsort.description=numeric sort
ChainableFunctionSet.reversenumericsort=rsort
ChainableFunctionSet.reversenumericsort.description=reverse numeric sort
ChainableFunctionSet.reduce=reduce
ChainableFunctionSet.skip=skip
ChainableFunctionSet.sort=sort
ChainableFunctionSet.sum=sum
ChainableFunctionSet.sum.description=sum the elements of a sequence (Terminal)
ChainableFunctionSet.while=while
ChainableFunctionSet.append=append
ChainableFunctionSet.anyMatch=anyMatch
ChainableFunctionSet.allMatch=allMatch
ChainableFunctionSet.noneMatch=noneMatch
ChainableFunctionSet.firstMatchOr=firstMatchOr

BigDecimalFunctionTable.sqrt=sqrt
BigDecimalFunctionTable.pow=pow
BigDecimalFunctionTable.binom=binom

ComplexFunctionTable.sin=sin
ComplexFunctionTable.cos=cos
ComplexFunctionTable.cosh=cosh
ComplexFunctionTable.tanh=tanh
ComplexFunctionTable.arcsinh=asinh
ComplexFunctionTable.arccosh=acosh
ComplexFunctionTable.arctanh=atanh
ComplexFunctionTable.log=log
ComplexFunctionTable.ln=ln
ComplexFunctionTable.lg=lg
ComplexFunctionTable.exp=exp
ComplexFunctionTable.abs=abs
ComplexFunctionTable.sqrt=sqrt
ComplexFunctionTable.tan=tan
ComplexFunctionTable.pow=pow
ComplexFunctionTable.re=re
ComplexFunctionTable.im=im
ComplexFunctionTable.arg=arg
ComplexFunctionTable.cmod=cmod
ComplexFunctionTable.complex=complex
ComplexFunctionTable.polar=polar
ComplexFunctionTable.conj=conj
ComplexFunctionTable.sqrt=sqrt
ComplexFunctionTable.if=if
ComplexFunctionTable.arcsin=asin
ComplexFunctionTable.arccos=acos
ComplexFunctionTable.arctan=atan
ComplexFunctionTable.cosec=cosec
ComplexFunctionTable.sec=sec
ComplexFunctionTable.cot=cot
ComplexFunctionTable.sinh=sinh


IntegerFunctionTable.abs=abs
IntegerFunctionTable.avg=avg
IntegerFunctionTable.binom=binom
IntegerFunctionTable.max=max
IntegerFunctionTable.min=min
IntegerFunctionTable.mod=mod
IntegerFunctionTable.pow=pow
IntegerFunctionTable.signum=signum
IntegerFunctionTable.sum=sum
IntegerFunctionTable.vsum=vsum

LambdaFunctionSet.accumulate=accumulate
LambdaFunctionSet.append=append
LambdaFunctionSet.apply=apply
LambdaFunctionSet.count=count
LambdaFunctionSet.define=define
LambdaFunctionSet.distinct=distinct
LambdaFunctionSet.filter=filter
LambdaFunctionSet.first=first
LambdaFunctionSet.firstOr=firstOr
LambdaFunctionSet.flatten=flatten
LambdaFunctionSet.fold=fold
LambdaFunctionSet.foldOr=foldOr
LambdaFunctionSet.iterate=iterate
LambdaFunctionSet.last=last
LambdaFunctionSet.limit=limit
LambdaFunctionSet.map=map
LambdaFunctionSet.merge=merge
LambdaFunctionSet.min=min
LambdaFunctionSet.max=max
LambdaFunctionSet.numericsort=nsort
LambdaFunctionSet.numericsort.description=numeric sort
LambdaFunctionSet.reversenumericsort=rsort
LambdaFunctionSet.reversenumericsort.description=reverse numeric sort
LambdaFunctionSet.reduce=reduce
LambdaFunctionSet.skip=skip
LambdaFunctionSet.sort=sort
LambdaFunctionSet.sum=sum
LambdaFunctionSet.sum.description=sum the elements of a sequence (Terminal)
LambdaFunctionSet.while=while
LambdaFunctionSet.anyMatch=anyMatch
LambdaFunctionSet.allMatch=allMatch
LambdaFunctionSet.noneMatch=noneMatch
LambdaFunctionSet.firstMatchOr=firstMatchOr

LambdaOperatorTable.LeftListBracket=[
LambdaOperatorTable.RightListBracket=]
LambdaOperatorTable.TernaryOpName=conditional
LambdaOperatorTable.TernaryOpSym1=?
LambdaOperatorTable.TernaryOpSym2=:


MatrixFunctionTable.avg=avg
MatrixFunctionTable.det=det
MatrixFunctionTable.id=id
MatrixFunctionTable.if=if
MatrixFunctionTable.inv=inv
MatrixFunctionTable.max=max
MatrixFunctionTable.min=min
MatrixFunctionTable.size=size
MatrixFunctionTable.solve=solve
MatrixFunctionTable.switch=switch
MatrixFunctionTable.trace=trace
MatrixFunctionTable.trans=trans
MatrixFunctionTable.vsum=vsum
MatrixFunctionTable.zeroMat=zeroMat
MatrixFunctionTable.zeroVec=zeroVec

matrix.dictionary.MatrixDictComponents.Clear=clear
matrix.dictionary.MatrixDictComponents.Remove=remove
matrix.dictionary.MatrixDictComponents.Get=get
matrix.dictionary.MatrixDictComponents.GetOr=getOr
matrix.dictionary.MatrixDictComponents.Put=put
# so does not conflict with size(mat)
matrix.dictionary.MatrixDictComponents.Size=numEntries
matrix.dictionary.MatrixDictComponents.ContainsKey=containsKey
matrix.dictionary.MatrixDictComponents.Keys=keys
matrix.dictionary.MatrixDictComponents.Entries=entries
matrix.dictionary.MatrixDictComponents.Values=values
matrix.dictionary.MatrixDictComponents.HashMap=hashMap
matrix.dictionary.MatrixDictComponents.LinkedMap=linkedMap
matrix.dictionary.MatrixDictComponents.TreeMap=treeMap
matrix.dictionary.MatrixDictComponents.EntriesIterable=! entriesIter - not implemented by default
matrix.dictionary.MatrixDictComponents.KeysIterable=! keysIter - not implemented by default
matrix.dictionary.MatrixDictComponents.ValuesIterable=! valuesIter - not implemented by default

RationalFunctionTable.abs=abs
RationalFunctionTable.avg=avg
RationalFunctionTable.binom=binom
RationalFunctionTable.ceil=ceil
RationalFunctionTable.denominator=denominator
RationalFunctionTable.denominator.description=denominator of a rational number
RationalFunctionTable.floor=floor
RationalFunctionTable.max=max
RationalFunctionTable.min=min
RationalFunctionTable.mod=mod
RationalFunctionTable.numerator=numerator
RationalFunctionTable.numerator.description=numerator of a rational number
RationalFunctionTable.pow=pow
RationalFunctionTable.rint=rint
RationalFunctionTable.round=round
RationalFunctionTable.signum=signum
RationalFunctionTable.sum=sum
RationalFunctionTable.vsum=vsum

StreamFunctionSet.accumulate=accumulate
StreamFunctionSet.apply=apply
StreamFunctionSet.car=car
StreamFunctionSet.cdr=cdr
StreamFunctionSet.clone=clone
StreamFunctionSet.count=count
StreamFunctionSet.chained=chained
StreamFunctionSet.chained.description=apply a function that accepts streams to the input stream
StreamFunctionSet.define=define
StreamFunctionSet.distinct=distinct
StreamFunctionSet.filter=filter
StreamFunctionSet.first=first
StreamFunctionSet.firstOr=firstOr
StreamFunctionSet.flatten=flatten
StreamFunctionSet.fold=fold
StreamFunctionSet.foldOr=foldOr
StreamFunctionSet.iterate=iterate
StreamFunctionSet.last=last
StreamFunctionSet.limit=limit
StreamFunctionSet.loop=loop
StreamFunctionSet.map=map
StreamFunctionSet.min=min
StreamFunctionSet.max=max
StreamFunctionSet.merge=merge
StreamFunctionSet.numericsort=nsort
StreamFunctionSet.numericsort.description=numeric sort
StreamFunctionSet.reversenumericsort=rsort
StreamFunctionSet.reversenumericsort.description=reverse numeric sort
StreamFunctionSet.reduce=reduce
StreamFunctionSet.skip=skip
StreamFunctionSet.sort=sort
StreamFunctionSet.sum=sum
StreamFunctionSet.sum.description=sum of a stream of numbers
StreamFunctionSet.while=while
StreamFunctionSet.append=append
StreamFunctionSet.toList=toList
StreamFunctionSet.toList.description=convert a stream to a list
StreamFunctionSet.anyMatch=anyMatch
StreamFunctionSet.allMatch=allMatch
StreamFunctionSet.noneMatch=noneMatch
StreamFunctionSet.firstMatchOr=firstMatchOr

stream.dictionary.StreamDictComponents.Clear=clear
stream.dictionary.StreamDictComponents.Remove=remove
stream.dictionary.StreamDictComponents.Get=get
stream.dictionary.StreamDictComponents.GetOr=getOr
stream.dictionary.StreamDictComponents.Put=put
stream.dictionary.StreamDictComponents.Size=size
stream.dictionary.StreamDictComponents.ContainsKey=containsKey
stream.dictionary.StreamDictComponents.Keys=keys
stream.dictionary.StreamDictComponents.Entries=entries
stream.dictionary.StreamDictComponents.Values=values
stream.dictionary.StreamDictComponents.HashMap=hashMap
stream.dictionary.StreamDictComponents.LinkedMap=linkedMap
stream.dictionary.StreamDictComponents.TreeMap=treeMap
stream.dictionary.StreamDictComponents.TreeMap.description=A map with keys sorted using a field. 
stream.dictionary.StreamDictComponents.EntriesIterable=!entries
stream.dictionary.StreamDictComponents.KeysIterable=!keys
stream.dictionary.StreamDictComponents.ValuesIterable=!values

stream.dictionary.StreamFieldDictComponents.Clear=clear
stream.dictionary.StreamFieldDictComponents.Remove=remove
stream.dictionary.StreamFieldDictComponents.Get=get
stream.dictionary.StreamFieldDictComponents.GetOr=getOr
stream.dictionary.StreamFieldDictComponents.Put=put
stream.dictionary.StreamFieldDictComponents.Size=size
stream.dictionary.StreamFieldDictComponents.ContainsKey=containsKey
stream.dictionary.StreamFieldDictComponents.Keys=keys
stream.dictionary.StreamFieldDictComponents.Entries=entries
stream.dictionary.StreamFieldDictComponents.Values=values
stream.dictionary.StreamFieldDictComponents.HashMap=hashMap
stream.dictionary.StreamFieldDictComponents.LinkedMap=linkedMap
stream.dictionary.StreamFieldDictComponents.TreeMap=treeMap
stream.dictionary.StreamFieldDictComponents.TreeMap.description=A map with keys sorted using a field. 
stream.dictionary.StreamFieldDictComponents.EntriesIterable=!entries
stream.dictionary.StreamFieldDictComponents.KeysIterable=!keys
stream.dictionary.StreamFieldDictComponents.ValuesIterable=!values

stream.dictionary.StreamMatrixDictComponents.Clear=clear
stream.dictionary.StreamMatrixDictComponents.Remove=remove
stream.dictionary.StreamMatrixDictComponents.Get=get
stream.dictionary.StreamMatrixDictComponents.GetOr=getOr
stream.dictionary.StreamMatrixDictComponents.Put=put
stream.dictionary.StreamMatrixDictComponents.Size=numEntries
stream.dictionary.StreamMatrixDictComponents.ContainsKey=containsKey
stream.dictionary.StreamMatrixDictComponents.Keys=keys
stream.dictionary.StreamMatrixDictComponents.Entries=entries
stream.dictionary.StreamMatrixDictComponents.Values=values
stream.dictionary.StreamMatrixDictComponents.HashMap=hashMap
stream.dictionary.StreamMatrixDictComponents.LinkedMap=linkedMap
stream.dictionary.StreamMatrixDictComponents.TreeMap=treeMap
stream.dictionary.StreamMatrixDictComponents.TreeMap.description=A map with keys sorted using a field. 
stream.dictionary.StreamMatrixDictComponents.EntriesIterable=!entries
stream.dictionary.StreamMatrixDictComponents.KeysIterable=!keys
stream.dictionary.StreamMatrixDictComponents.ValuesIterable=!values

XFunctionTable.clean=clean
XFunctionTable.coeffs=coeffs
XFunctionTable.compare=compare
XFunctionTable.eqn=eqn
XFunctionTable.eval=eval
XFunctionTable.expand=expand
XFunctionTable.rand=rand
XFunctionTable.rewrite=rewrite
XFunctionTable.simplify=simplify
XFunctionTable.symequals=symequals
XFunctionTable.substAll=substAll
XFunctionTable.preprocess=preprocess
XFunctionTable.expandcompare=ecompare

com.singularsys.extensions.chained.ChainableBinaryFunction.description={0} (Chainable) 
com.singularsys.extensions.chained.ChainableBinaryFunctionSwapped.description={0} (Chainable, swapped) 
com.singularsys.extensions.chained.ChainableGeneralFunction.description={0} (Chainable) 
com.singularsys.extensions.chained.ChainableUnaryFunction.description={0} (Chainable) 
com.singularsys.extensions.chained.ChainedBinaryFunction.description={0} (Chained) 
com.singularsys.extensions.chained.ChainedBinaryFunctionSwapped.description={0} (Chained, swapped) 
com.singularsys.extensions.chained.ChainedGeneralFunction.description={0} (Chained) 
com.singularsys.extensions.chained.ChainedNaryFunction.description={0} (Chained) 
com.singularsys.extensions.chained.ChainedUnaryFunction.description={0} (Chained) 
com.singularsys.extensions.chained.ChainingOpPfmc.description=the chaining operator
com.singularsys.extensions.chained.SendTo.description=send the result of the left hand side to the function on the right hand side, for example: 5 |> x->x^2 -> 25
com.singularsys.extensions.djep.Diff.description=symbolic differentiation, diff(sin(x),x) -> cos(x)

com.singularsys.extensions.field.FieldOperatorTable$AndFunction.AND.description=logical AND
com.singularsys.extensions.field.FieldOperatorTable$OrFunction.OR.description=logical OR
com.singularsys.extensions.field.FieldOperatorTable$NotFunction.description=logical NOT
com.singularsys.extensions.field.FieldOperatorTable$GTFunction.description=greater than
com.singularsys.extensions.field.FieldOperatorTable$GeFunction.description=greater than or equal to
com.singularsys.extensions.field.FieldOperatorTable$LtFunction.description=less than
com.singularsys.extensions.field.FieldOperatorTable$LeFunction.description=less than or equal to
com.singularsys.extensions.field.FieldOperatorTable$EqFunction.description=equals
com.singularsys.extensions.field.FieldOperatorTable$NeFunction.description=not equals
com.singularsys.extensions.field.FieldOperatorTable$PowFunction.description=power
com.singularsys.extensions.field.FieldOperatorTable$NegFunction.description=negation
com.singularsys.extensions.field.FieldOperatorTable$ModFunction.description=modulus
com.singularsys.extensions.field.FieldOperatorTable$DivFunction.description=division
com.singularsys.extensions.field.FieldOperatorTable$MulFunction.description=multiplication
com.singularsys.extensions.field.FieldOperatorTable$AddFunction.description=addition
com.singularsys.extensions.field.FieldOperatorTable$SubFunction.description=subtraction


com.singularsys.extensions.field.functions.FieldAbs.description=absolute value of a number
com.singularsys.extensions.field.functions.FieldBinomial.description=binomial coefficient, for example: binom(5,2) -> 10
com.singularsys.extensions.field.functions.FieldFactorial.description=factorial of a number
com.singularsys.extensions.field.functions.FieldMod.description=modulo of two numbers, for example: mod(5,3) -> 2
com.singularsys.extensions.field.functions.FieldPower.description=power function, for example: pow(2,3) -> 8
com.singularsys.extensions.field.functions.FieldSignum.description=signum function, for example: signum(-5) -> -1, signum(0) -> 0, signum(5) -> 1
com.singularsys.extensions.field.functions.FieldSqrt.description=square root of a number
com.singularsys.extensions.field.functions.RationalRound.DOWN.description=round a rational number towards zero
com.singularsys.extensions.field.functions.RationalRound.FLOOR.description=round a rational number towards negative infinity
com.singularsys.extensions.field.functions.RationalRound.CEILING.description=round a rational number towards positive infinity
com.singularsys.extensions.field.functions.RationalRound.UP.description=round a rational number away from zero
com.singularsys.extensions.field.functions.RationalRound.HALF_DOWN.description=round a rational number towards the nearest neighbor, unless both neighbors are equidistant, in which case round down
com.singularsys.extensions.field.functions.RationalRound.HALF_UP.description=round a rational number towards the nearest neighbor, unless both neighbors are equidistant, in which case round up
com.singularsys.extensions.field.functions.RationalRound.HALF_EVEN.description=round a rational number towards the nearest neighbor, unless both neighbors are equidistant, in which case round towards the even neighbor
com.singularsys.extensions.field.functions.RationalRound.UNNECESSARY.description=round a rational number only if it is already an integer, otherwise throw an exception

com.singularsys.extensions.lambda.Accumulate.description=accumulate value of sequence, returning a stream of intermediate values
com.singularsys.extensions.lambda.Append.description=append a list of arguments to the end of another list
com.singularsys.extensions.lambda.Apply.description=apply a lambda function to a list of arguments
com.singularsys.extensions.lambda.Define.description=define a regular function from a lambda expression
com.singularsys.extensions.lambda.Distinct.description=return a list with duplicate elements removed
com.singularsys.extensions.lambda.ExternalFilter.description=filter a sequence
com.singularsys.extensions.lambda.ExternalMap.description=apply a map function to a sequence
com.singularsys.extensions.lambda.ExternalSort.description=sort a sequence
com.singularsys.extensions.lambda.FieldRange.description=generate a sequence of number between two values
com.singularsys.extensions.lambda.Filter.description=filter a list of arguments by a lambda function
com.singularsys.extensions.lambda.First.description=returns the first element of a list.
com.singularsys.extensions.lambda.FirstOr.description=returns the first element of a list or a default value if the list is empty
com.singularsys.extensions.lambda.Flatten.description=flatten a list of lists, return a list of all elements
com.singularsys.extensions.lambda.Fold.description=fold a list of arguments by a lambda function
com.singularsys.extensions.lambda.FoldOr.description=fold a list of arguments by a lambda function or return a default value if the list is empty
com.singularsys.extensions.lambda.Iterate.description=creates a list using lambda functions, e.g. iterate(1,i=>i*2,i=>i<100)
com.singularsys.extensions.lambda.LambdaCount.description=count the number of elements in a list 
com.singularsys.extensions.lambda.LambdaFunGenerator.description=define a lambda function
com.singularsys.extensions.lambda.LambdaFunction.description=[{0}]=>{1} (Lambda)
com.singularsys.extensions.lambda.LambdaMinMax.MIN.description=returns the minimum value of a sequence
com.singularsys.extensions.lambda.LambdaMinMax.MAX.description=returns the maximum value of a sequence
com.singularsys.extensions.lambda.Last.description=last element of a list
com.singularsys.extensions.lambda.Limit.description=limit a list of arguments to a given number of elements
com.singularsys.extensions.lambda.LambdaMap.description=apply a lambda function to a sequence
com.singularsys.extensions.lambda.Merge.description=merge two lists by a lambda function
com.singularsys.extensions.lambda.LambdaRange.description=generate a list of numbers between two values
com.singularsys.extensions.lambda.Reduce.description=reduce a list of arguments using and initial value and a lambda function 
com.singularsys.extensions.lambda.SendTo.description=send the result of the left hand side to the function on the right hand side, for example: [1,2,3] |> x->x^2 -> [1,4,9]
com.singularsys.extensions.lambda.Skip.description=skip a number of elements in a list
com.singularsys.extensions.lambda.Sort.description=sort a list of arguments by a lambda function
com.singularsys.extensions.lambda.TerminalFunction.description={0} (Terminal)
com.singularsys.extensions.lambda.TerminalNaryBinaryFunction.description={0} (Terminal, n-ary binary)
com.singularsys.extensions.lambda.WhileFilter.description=return elements of a list while a lambda function predicate is true

com.singularsys.extensions.matrix.dictionary.MatrixDictRemove.description=Removes the entry associated with a key from a dictionary.
com.singularsys.extensions.matrix.dictionary.MatrixDictGet.description=Gets the value associated with a key in a dictionary.
com.singularsys.extensions.matrix.dictionary.MatrixDictGetOr.description=Gets the value associated with a key or return the default value.
com.singularsys.extensions.matrix.dictionary.MatrixDictPut.description=Put the for a key in a dictionary.
com.singularsys.extensions.matrix.dictionary.MatrixDictSize.description=Get the number of entries a dictionary.
com.singularsys.extensions.matrix.dictionary.MatrixDictContainsKey.description=Test if a key is in a dictionary.
com.singularsys.extensions.matrix.dictionary.MatrixDictKeys.description=Gets the set of keys of a dictionary as a VectorI.
com.singularsys.extensions.matrix.dictionary.MatrixDictEntries.description=Gets the set of values in a dictionary as a MatrixI.
com.singularsys.extensions.matrix.dictionary.MatrixDictValues.description=Get the set of entries in a dictionary as a VectorI.
com.singularsys.extensions.matrix.dictionary.MatrixDictMakeMap.HashMap.description=Create a hash map from a list
com.singularsys.extensions.matrix.dictionary.MatrixDictMakeMap.LinkedMap.description=Create a linked hash map, preserving insertion order
com.singularsys.extensions.matrix.dictionary.MatrixDictMakeMap.TreeMap.description=Create a tree map, sorting entries
com.singularsys.extensions.matrix.dictionary.MatrixDictMakeMap.SUPPLIER.description=Create a map from a supplier
com.singularsys.extensions.matrix.dictionary.MatrixDictEntriesIterable.description=Iterable view of entries of the map.
com.singularsys.extensions.matrix.dictionary.MatrixDictValuesIterable.description=Iterable view of values of the map.
com.singularsys.extensions.matrix.dictionary.MatrixDictKeysIterable.description=Iterable view of keys of the map.


com.singularsys.extensions.matrix.dictionary.MatrixDictPut.KeyNoFound=Key {0} not found.

com.singularsys.extensions.matrix.functions.MatrixAdd.description=add two matrices or add a vector to a matrix
com.singularsys.extensions.matrix.functions.MatrixCmp.description=compare two matrices, for example: cmp([[1,2],[3,4]],[[1,2],[3,4]]) -> 0, cmp([[1,2],[3,4]],[[5,6],[7,8]]) -> -1
com.singularsys.extensions.matrix.functions.MatrixCross.description=cross product
com.singularsys.extensions.matrix.functions.MatrixDet.description=determinant 
com.singularsys.extensions.matrix.functions.MatrixDiv.description=division
com.singularsys.extensions.matrix.functions.MatrixDot.description=dot product
com.singularsys.extensions.matrix.functions.MatrixEle.description=find and element-of a vector or a matrix
com.singularsys.extensions.matrix.functions.MatrixId.description=identity matrix
com.singularsys.extensions.matrix.functions.MatrixIf.description=a conditional function, if(condition, trueValue, falseValue)
com.singularsys.extensions.matrix.functions.MatrixInv.description=inverse of a matrix
com.singularsys.extensions.matrix.functions.MatrixList.description=convert a list of arguments to a matrix
com.singularsys.extensions.matrix.functions.MatrixMod.description=modulus
com.singularsys.extensions.matrix.functions.MatrixMul.description=multiply
com.singularsys.extensions.matrix.functions.MatrixNeg.description=negate
com.singularsys.extensions.matrix.functions.MatrixPow.description=power
com.singularsys.extensions.matrix.functions.MatrixSize.description=size of a matrix
com.singularsys.extensions.matrix.functions.MatrixSolve.description=solve a linear system of equations, for example: solve([[1,2],[3,4]], [5,6]) -> [-4,4.5]
com.singularsys.extensions.matrix.functions.MatrixSub.description=subtract two matrices or subtract a vector from a matrix
com.singularsys.extensions.matrix.functions.MatrixSwitch.description=a switch function, switch(2, 5,6,7,8) -> 6
com.singularsys.extensions.matrix.functions.MatrixTrace.description=trace of a matrix
com.singularsys.extensions.matrix.functions.MatrixTrans.description=transpose of a matrix
com.singularsys.extensions.matrix.functions.MatrixZeroMat.description=generate a zero matrix of a given size
com.singularsys.extensions.matrix.functions.MatrixZeroVec.description=generate a zero vector of a given size

com.singularsys.extensions.polynomials.Coeffs.description=coefficients of a polynomial
com.singularsys.extensions.polynomials.Compare.description=compare two polynomials, compare(x^2+y^2,y^2+x^2)
com.singularsys.extensions.polynomials.Expand.description=expand brackets and power
com.singularsys.extensions.polynomials.Simplify.description=simplify a polynomial expression
com.singularsys.extensions.polynomials.SymbolicEquals.description=symbolic equality

com.singularsys.extensions.rewrite.Rewrite.description=rewrite an expression by a set of rules

com.singularsys.extensions.statistical.Count.description=count the number of elements in a list
com.singularsys.extensions.statistical.ElementMinMax.MAX.description=returns the maximum of a list of numbers
com.singularsys.extensions.statistical.ElementMinMax.MIN.description=returns the minimum of a list of numbers
com.singularsys.extensions.statistical.ElementMinMax.RANGE.description=returns the range of a list of numbers
com.singularsys.extensions.statistical.ElementMinMax.null.description=returns the minimum and maximum of a list of numbers
com.singularsys.extensions.statistical.ElementProduct.description=returns the product of all the elements
com.singularsys.extensions.statistical.ElementSum.description=sum of the all the elements
com.singularsys.extensions.statistical.Mean.description=mean of a list of numbers	
com.singularsys.extensions.statistical.Median.description=median of a list of numbers
com.singularsys.extensions.statistical.Mode.description=mode of a list of numbers
com.singularsys.extensions.statistical.Percentile.INCLUSIVE.description=percentile of a list of numbers, includes end points
com.singularsys.extensions.statistical.Percentile.EXCLUSIVE.description=percentile of a list of numbers, excludes end points
com.singularsys.extensions.statistical.Percentile.MID.description=percentile of a list of numbers, mid-range
com.singularsys.extensions.statistical.Percentile.NEAREST.description=percentile of a list of numbers, Nearest rank
com.singularsys.extensions.statistical.Percentile.MEDIAN.description=percentile of a list of numbers, median unbiased estimator
com.singularsys.extensions.statistical.Rank.COMPETITION.description=rank of a list of numbers, competition ranking
com.singularsys.extensions.statistical.Rank.DENSE.description=rank of a list of numbers, dense ranking
com.singularsys.extensions.statistical.Rank.FRACTIONAL.description=rank of a list of numbers, fractional ranking
com.singularsys.extensions.statistical.Ranks.COMPETITION.description=ranks of all the elements in a list, competition ranking
com.singularsys.extensions.statistical.Ranks.DENSE.description=ranks of all the elements in a list, dense ranking
com.singularsys.extensions.statistical.Ranks.ORDINAL.description=ranks of all the elements in a list, ordinal ranking
com.singularsys.extensions.statistical.Ranks.FRACTIONAL.description=ranks of all the elements in a list, fractional ranking
com.singularsys.extensions.statistical.SortElements.description=sorts the elements in a list of numbers	
com.singularsys.extensions.statistical.Variance.description=variance of a list of numbers
com.singularsys.extensions.statistical.distributions.BinomialCdf.description=cumulative distribution function of the binomial distribution
com.singularsys.extensions.statistical.distributions.BinomialDist.description=probability mass function of the binomial distribution
com.singularsys.extensions.statistical.distributions.NormalDist.description=probability density function of the normal distribution
com.singularsys.extensions.statistical.distributions.NormalInverse.description=inverse cumulative distribution function of the normal distribution

com.singularsys.extensions.stream.FieldStreamRange.description=generate a stream of numbers between two values
com.singularsys.extensions.stream.StreamAccumulate.description=accumulate value of sequence, returning a stream of intermediate values
com.singularsys.extensions.stream.StreamApply.description=apply lambda function to it inputs, treating steams as a single List argument.
com.singularsys.extensions.stream.StreamAppend.description=concatenate two streams
com.singularsys.extensions.stream.StreamAssign.description=assignment, will convert streams to Vector<Object>.
com.singularsys.extensions.stream.StreamCollector.description=collect a stream of arguments into a list
com.singularsys.extensions.stream.StreamCar.description=get the first element of a stream
com.singularsys.extensions.stream.StreamCdr.description=get a stream within a first element removed
com.singularsys.extensions.stream.StreamClone.description=clone a stream within a lambda function
com.singularsys.extensions.stream.StreamCount.description=count the number of elements in a stream
com.singularsys.extensions.stream.StreamDistinct.description=return a list with duplicate elements removed
com.singularsys.extensions.stream.StreamExternalFilter.description=filter a stream
com.singularsys.extensions.stream.StreamExternalMap.description=apply a map function to a stream
com.singularsys.extensions.stream.StreamExternalSort.description=sort a stream
com.singularsys.extensions.stream.StreamFilter.description=filter a stream by a lambda function predicate
com.singularsys.extensions.stream.StreamFirst.description=returns the first element of a stream.
com.singularsys.extensions.stream.StreamFirstOr.description=returns the first element of a stream or a default value if the stream is empty
com.singularsys.extensions.stream.StreamFold.description=fold a stream of arguments by a lambda function
com.singularsys.extensions.stream.StreamFoldOr.description=fold a stream of arguments by a lambda function or return a default value if the stream is empty
com.singularsys.extensions.stream.StreamIterate.description=generates a stream using lambda functions, e.g. iterate(1,i=>i*2,i=>i<100)
com.singularsys.extensions.stream.StreamLast.description=last element of a stream
com.singularsys.extensions.stream.StreamLimit.description=limit a stream of arguments to a given number of elements
com.singularsys.extensions.stream.StreamLoop.description=create an infinite stream by repeatedly looping over the input stream
com.singularsys.extensions.stream.StreamMap.description=apply a lambda function to each element in a stream
com.singularsys.extensions.stream.StreamMerge.description=merge two streams by a lambda function
com.singularsys.extensions.stream.StreamMinMax.MAX.description=returns the maximum of a stream of numbers
com.singularsys.extensions.stream.StreamMinMax.MIN.description=returns the minimum of a stream of numbers
com.singularsys.extensions.stream.StreamRange.description=generate a stream of numbers between two values
com.singularsys.extensions.stream.StreamReduce.description=reduce a stream of arguments by a lambda function
com.singularsys.extensions.stream.StreamSendTo.description=assignment to rhs, will convert streams to Vector<Object>.
com.singularsys.extensions.stream.StreamSendToStream.description=assign to rhs, saving an unclosed stream
com.singularsys.extensions.stream.StreamSkip.description=skip a number of elements in a stream
com.singularsys.extensions.stream.StreamSort.description=sort a stream using  a lambda function
com.singularsys.extensions.stream.StreamSourcePfmc.description=generates a stream of values
com.singularsys.extensions.stream.StreamTerminalFunction.description={0} (Terminal)
com.singularsys.extensions.stream.StreamTerminalNaryBinaryFunction.description={0} (Terminal, n-ary binary)
com.singularsys.extensions.stream.StreamToList.description=convert a stream to a list
com.singularsys.extensions.stream.StreamWhile.description=return elements of a stream while a lambda function predicate is true

com.singularsys.extensions.stream.StreamAnyMatch.ANY.description=matches any element of a sequence
com.singularsys.extensions.stream.StreamAnyMatch.ALL.description=matches all element of a sequence
com.singularsys.extensions.stream.StreamAnyMatch.NONE.description=matches none of the element of a sequence
com.singularsys.extensions.stream.StreamFirstMatchOr.description=find the first matching element of a sequence or a default value

com.singularsys.extensions.stream.dictionary.StreamEntries.description=a stream of the entries of a dictionary
com.singularsys.extensions.stream.dictionary.StreamKeys.description=a stream of the keys of a dictionary
com.singularsys.extensions.stream.dictionary.StreamValues.description=a stream of the values of a dictionary

com.singularsys.extensions.stream.dictionary.StreamMatrixEntries.description=a stream of the entries of a dictionary 
com.singularsys.extensions.stream.dictionary.StreamMatrixKeys.description=a stream of the keys of a dictionary
com.singularsys.extensions.stream.dictionary.StreamMatrixValues.description=a stream of the values of a dictionary

com.singularsys.extensions.structure.fieldJavaOps.FieldPostDec.description=postfix decrement
com.singularsys.extensions.structure.fieldJavaOps.FieldPostInc.description=postfix increment
com.singularsys.extensions.structure.fieldJavaOps.FieldPreDec.description=prefix decrement
com.singularsys.extensions.structure.fieldJavaOps.FieldPreInc.description=prefix increment
com.singularsys.extensions.xjep.Clean.description=clean an expression
com.singularsys.extensions.xjep.DirtyRandom.description=returns a random number
com.singularsys.extensions.xjep.DirtyThreadSafeRandom.description=returns a random number
com.singularsys.extensions.xjep.Eval.description=evaluate during compile time, for example: 'expand((x+1)^eval(n))'
com.singularsys.extensions.xjep.ExtractEqn.description=extract equation from a symbolic variable
com.singularsys.extensions.xjep.Preprocess.description=apply preprocessing rules to an expression
com.singularsys.extensions.xjep.Subst.description=substitute a variable with an expression, for example: subst(x*y*z,y=x+1,z=x-1)
com.singularsys.extensions.xjep.XAssign.description=set a variable to an expression

com.singularsys.extexamples.consoles.ExtensionsConsole$PrintFunction.description=print its arguments
com.singularsys.extexamples.consoles.ExtensionsConsole$PrintfFunction.description=print its arguments with a format string
com.singularsys.extexamples.consoles.FieldConsole$BigDecPFMC.description=convert to a BigDecimal
com.singularsys.extexamples.consoles.FieldConsole$DoublePFMC.description=convert to a double
com.singularsys.extexamples.consoles.FieldConsole$RationalPFMC.description=convert to a rational number


com.singularsys.extexamples.consoles.FieldConsole.DictionaryHelp=\
Dictionary operations:\n\
\  dict={'x':2, 'y':3}		creation of a dictionary\n\
\  get(dict,'x')			Gets the value associated with a key\n\
\  getOr(dict,'x',-1)		Gets the value associated with a key or a default value if the key is not found\n\
\  put(dict,'x',5)		Sets the value for a key\n\
\  remove(dict,'x')		Remove an entry from a dictionary\n\
\  containsKey(dict, 'x')	Tests if a key exists\n\
\  size(dict)		Number of entries in the dictionary\n\
\  keys(dict)			The keys in a dictionary as a vector\n\
\  values(dict)			The values in a dictionary as a vector\n\
\  entries(dict)			The entries in a dictionary as a N by 2 matrix\n\
\  clear(dict)			Remove all entries from a dictionary\n\
\  dict=hashMap([['x',2],['y',3],['z',4]])\n\
\  				create a hash map from a nested list\n\
\  dict=treeMap()		Create a tree map, with sorted key order\n\
\  dict=linkedMap()		Create a linked hash map with insertion order\n\

com.singularsys.extexamples.consoles.LambdaConsole.IntroText=Jep with lambda function support.
com.singularsys.extexamples.consoles.LambdaConsole.Help=\nLambda functions and higher order functions\n\
\ \ [1..10]			Gives a sequence of numbers\n\
\ \ x => x^2			define a lambda function\n\
\ \ [x,y] => x^y			lambda function with two arguments\n\
\ \ v => v[1]*v[1]+v[2]*v[2]\n\
\ 				lambda function with a vector argument using indexing\n\
\ \ [[x,y]] => x*x+y*y\n\
\ 				lambda function with a vector argument using pattern matching\n\
\ \ [[x,y],[u,v]] => x*u+y*v\n\
\ 				pattern matching with two vector arguments\n\
\ \ apply(x=> x^2, 10)		apply function to a single item\n\
\ \ Sum = seq => fold([x,y]=>x+y,seq)\n\
\ 				Save a lambda function in a variable\n\
\ \ apply(Sum,[1..10])		Use saved lambda function\n\
\ \ define("sq",x=>x^2)		turn a lambda function into a normal function\n\
\ \ sq(5)				evaluate the new function\n\
\ \ define('**',[[a,b],[c,d]]=>[a*c-b*d,a*d+b*c],\n\
\ 	'complex mul','Operator,Binary,Left,Prec=*')\n\
\ 				Define a complex multiplication operator\n\
\ \ [0,1]**[2,3]			evaluate the new operator\n\
\ \ define('*',			Overload the * operator to allow matrix multiplication\n\
\ \     [[[a,b],[c,d]],[[x,y],[z,w]]] => [[a x+b z,a y+ b w],[c x+d z,c y+ d w]],\n\
\ \     'matrix mul','Operator,Overload=*')\n\
\n\
Generator functions\n\
\ \ iterate(1,i=>i*2,i=>i<100)	generate a sequence using two lambda functions\n\
\n\
Intermediate functions that return modified lists\n\
\ \ map(x=> x^2, [1,2,3,4])	apply function to every element of an array\n\
\ \ sort([x,y]=>x-y,[3,2,7,6])	sort sequence according to criteria\n\
\ \ nsort([3,2,7,6])		sort numerically\n\
\ \ rsort([3,2,7,6])		sort reverse numerically\n\
\ \ filter(x=>x%2==0,[1,2,3,4])	applies a filter to a list, returns the elements which meet a condition.\n\
\ \ merge([x,y]=>x^y,[1,2,3,4,5],[2,2,2,2,2])\n\
\ 				merge two sequences element by element.\n\
\ \ limit(5,[1..10])		limit a sequence to n elements\n\
\ \ skip(5,[1..10])		skip n elements\n\
\ \ while(x=>x<5,[1..10])		return elements of a sequence while a condition is true\n\
\ \ append([1,2,3],[4,5,6])	append two sequences\n\
\n\
Terminal functions converting lists to a single value\n\
\ \ fold([x,y]=> x+y, [1,2,3,4])	fold a sequence using a binary lambda function\n\
\ \ foldOr([x,y]=> x+y, -1, [])	fold sequence with a default value for empty sequences\n\
\ \ reduce(1,[x,y]=> x*y, [1..5])	reduce a sequence with an intial value and a lambda function\n\
\ \ sum([3,2,7,6,8])		return the sum of a sequence\n\
\ \ min([3,2,7,6,8])		return the minimum of a sequence\n\
\ \ max([3,2,7,6,8])		return the maximum of a sequence\n\
\ \ last([1..10])			return the last element of a sequence\n\
\ \ first([1..10])		return the first element of a sequence\n\
\ \ firstOr([],-1)		return the first element of a sequence or a default value\n\
\ \ count([1..10])		return the number of elements in a sequence\n\
	
com.singularsys.extexamples.consoles.ChainedConsole.IntroText=Jep with lambda function support and chained syntax.
com.singularsys.extexamples.consoles.ChainedConsole.Help=\
Lambda functions and higher order functions\n\
\ \ [1..10]			Gives a sequence of numbers\n\
\ \ x => x^2			define a lambda function\n\
\ \ [x,y] => x^y			lambda function with two arguments\n\
\ \ v => v[1]*v[1]+v[2]*v[2]\n\
\ 				lambda function with a vector argument using indexing\n\
\ \ [[x,y]] => x*x+y*y\n\
\ 				lambda function with a vector argument using pattern matching\n\
\ \ [[x,y],[u,v]] => x*u+y*v\n\
\ 				pattern matching with two vector arguments\n\
\ \ apply(x=> x^2, 10)		apply function to a single item\n\
\ \ Sum = seq => fold([x,y]=>x+y,seq)\n\
\ 				Save a lambda function in a variable\n\
\ \ apply(Sum,[1..10])		Use saved lambda function\n\
\ \ define("sq",x=>x^2)		turn a lambda function into a normal function\n\
\ \ sq(5)				evaluate the new function\n\
\ \ define('**',[[a,b],[c,d]]=>[a*c-b*d,a*d+b*c],\n\
\ 	'complex mul','Operator,Binary,Left,Prec=*')\n\
\ 				Define a complex multiplication operator\n\
\ \ [0,1]**[2,3]			evaluate the new operator\n\
\ \ define('*',			Overload the * operator to allow matrix multiplication\n\
\ \     [[[a,b],[c,d]],[[x,y],[z,w]]] => [[a x+b z,a y+ b w],[c x+d z,c y+ d w]],\n\
\ \     'matrix mul','Operator,Overload=*')\n\
\ \ define('squares',seq=>seq.map(x=>x^2),'square a sequence','Function,Chained')\n\
\ 				Define a chained function\n\
\ \ [1..5].squares().sum()	use the new chained function\n\
\n\
Generator functions\n\
\ \ iterate(1,i=>i*2,i=>i<100)	generate a sequence using two lambda functions\n\
\n\
Intermediate functions that return modified lists\n\
\ \ [1,2,3,4].map(x=> x^2)	apply function to every element of an array\n\
\ \ [3,2,7,6].sort([x,y]=>x-y)	sort sequence according to criteria\n\
\ \ [3,2,7,6].nsort()		sort numerically\n\
\ \ [3,2,7,6].rsort()		sort reverse numerically\n\
\ \ [1,2,3,4].filter(x=>x%2==0)	applies a filter to a list, returns the elements which meet a condition.\n\
\ \ [2,2,2,2,2]. merge([x,y]=>x^y,[1,2,3,4,5])\n\
\ 				merge two sequences element by element.\n\
\ \ [1..10].limit(5)		limit a sequence to n elements\n\
\ \ [1..10].skip(5)		skip n elements\n\
\ \ [1..10].while(x=>x<5)		return elements of a sequence while a condition is true\n\
\ \ [1,2,3].append([4,5,6])	append two sequences\n\
\n\
Terminal functions converting lists to a single value\n\
\ \ [1..10].fold([x,y]=> x+y)	fold a sequence using a binary lambda function\n\
\ \ [].foldOr([x,y]=> x+y, -1)	fold sequence with a default value for empty sequences\n\
\ \ [1..5].reduce(1,[x,y]=> x*y)	reduce a sequence with an intial value and a lambda function\n\
\ \ [3,2,7,6,8].sum()		return the sum of a sequence\n\
\ \ [3,2,7,6,8].min()		return the minimum of a sequence\n\
\ \ [3,2,7,6,8].max()		return the maximum of a sequence\n\
\ \ [1..10].last()			return the last element of a sequence\n\
\ \ [1..10].first()		return the first element of a sequence\n\
\ \ [].firstOr(-1)		return the first element of a sequence or a default value\n\
\ \ [1..10].count()		return the number of elements in a sequence\n\

com.singularsys.extexamples.consoles.ChainedConsole.DictHelp=\
Dictionary operations:\n\
\  dict={'x':2, 'y':3}		creation of a dictionary\n\
\  get(dict,'x')			Gets the value associated with a key\n\
\  getOr(dict,'x',-1)		Gets the value associated with a key or a default value if the key is not found\n\
\  put(dict,'x',5)		Sets the value for a key\n\
\  remove(dict,'x')		Remove an entry from a dictionary\n\
\  containsKey(dict, 'x')	Tests if a key exists\n\
\  size(dict)			Number of entries in the dictionary\n\
\  keys(dict)			The keys in a dictionary as a vector\n\
\  values(dict)			The values in a dictionary as a vector\n\
\  entries(dict)			The entries in a dictionary as a N by 2 matrix\n\
\  clear(dict)			Remove all entries from a dictionary\n\
\  dict=hashMap([['x',2],['y',3],['z',4]])\n\
\  				create a hash map from a nested list\n\
\  dict=treeMap()		Create a tree map, with sorted key order\n\
\  dict=linkedMap()		Create a linked hash map with insertion order\n\

com.singularsys.extexamples.consoles.StreamConsole.IntroText=Jep with lambda function and stream support.
com.singularsys.extexamples.consoles.StreamConsole.Help=\
Lambda functions and higher order functions\n\
\ \ [1..10]			Gives a sequence of numbers\n\
\ \ primes().limit(5)		Generate an infinite stream of prime numbers\n\
\ \ x => x^2			define a lambda function\n\
\ \ [x,y] => x^y			lambda function with two arguments\n\
\ \ v => v[1]*v[1]+v[2]*v[2]	lambda function with a vector argument using indexing\n\
\ \ [[x,y]] => x*x+y*y	lambda function with a vector argument using pattern matching\n\
\ \ [[x,y],[u,v]] => x*u+y*v	pattern matching with two vector arguments\n\
\ \ apply(x=> x^2, 10)		apply function to a single item\n\
\ \ Sum = seq => fold([x,y]=>x+y,seq)\n\
\ 				Save a lambda function in a variable\n\
\ \ apply(Sum,[1..10])		Use saved lambda function\n\
\ \ define("sq",x=>x^2)		turn a lambda function into a normal function\n\
\ \ sq(5)				evaluate the new function\n\
\ \ define('**',[[a,b],[c,d]]=>[a*c-b*d,a*d+b*c],\n\
\ 	'complex mul','Operator,Binary,Left,Prec=*')\n\
\ 				Define a complex multiplication operator\n\
\ \ [0,1]**[2,3]			evaluate the new operator\n\
\ \ define('*',			Overload the * operator to allow matrix multiplication\n\
\ \     [[[a,b],[c,d]],[[x,y],[z,w]]] => [[a x+b z,a y+ b w],[c x+d z,c y+ d w]],\n\
\ \     'matrix mul','Operator,Overload=*')\n\
\ \ define('squares',seq=>seq.map(x=>x^2),'square a sequence','Function,Chained')\n\
\ 				Define a chained function\n\
\ \ [1..5].squares().sum()	use the new chained function\n\
\ \ small = primes().limit(10)\n\
\ 				Stream are converted to lists before assigning to a variable\n\
\ \ small + small			The variable can be uses as normal\n\
\n\
Generator functions\n\
\ \ iterate(1,i=>i*2,i=>i<100)	generate a sequence using two lambda functions\n\
\ \ iterate(1,x=>2*x).limit(10)\n\
\ 				Two arg version gives an infinite sequence\n\
\n\
Intermediate functions that return modified lists\n\
\ \ [1,2,3,4].map(x=> x^2)	apply function to every element of an array\n\
\ \ [3,2,7,6].sort([x,y]=>x-y)	sort sequence according to criteria\n\
\ \ [3,2,7,6].nsort()		sort numerically\n\
\ \ [3,2,7,6].rsort()		sort reverse numerically\n\
\ \ [1,2,3,4].filter(x=>x%2==0)	applies a filter to a list, returns the elements which meet a condition.\n\
\ \ [2,2,2,2,2]. merge([x,y]=>x^y,[1,2,3,4,5])\n\
\ 				merge two sequences element by element.\n\
\ \ [1..10].limit(5)		limit a sequence to n elements\n\
\ \ [1..10].skip(5)		skip n elements\n\
\ \ [1..10].while(x=>x<5)		return elements of a sequence while a condition is true\n\
\ \ [1,2,3].append([4,5,6])	append two sequences\n\
\n\
Terminal functions converting lists to a single value\n\
\ \ [1..10].fold([x,y]=> x+y)	fold a sequence using a binary lambda function\n\
\ \ [].foldOr([x,y]=> x+y, -1)	fold sequence with a default value for empty sequences\n\
\ \ [1..5].reduce(1,[x,y]=> x*y)	reduce a sequence with an intial value and a lambda function\n\
\ \ [3,2,7,6,8].sum()		return the sum of a sequence\n\
\ \ [3,2,7,6,8].min()		return the minimum of a sequence\n\
\ \ [3,2,7,6,8].max()		return the maximum of a sequence\n\
\ \ [1..10].last()		return the last element of a sequence\n\
\ \ [1..10].first()		return the first element of a sequence\n\
\ \ [].firstOr(-1)		return the first element of a sequence or a default value\n\
\ \ [1..10].count()		return the number of elements in a sequence\n\
\ \ [1..10].toList()		converts the stream to a list\n\

com.singularsys.extexamples.consoles.StreamConsole.DictHelp=\
Dictionary operations:\n\
\  dict={'x':2, 'y':3}		creation of a dictionary\n\
\  get(dict,'x')			Gets the value associated with a key\n\
\  getOr(dict,'x',-1)		Gets the value associated with a key or a default value if the key is not found\n\
\  put(dict,'x',5)		Sets the value for a key\n\
\  remove(dict,'x')		Remove an entry from a dictionary\n\
\  containsKey(dict, 'x')	Tests if a key exists\n\
\  size(dict)			Number of entries in the dictionary\n\
\  keys(dict)			The keys in a dictionary as a vector\n\
\  values(dict)			The values in a dictionary as a vector\n\
\  entries(dict)			The entries in a dictionary as a N by 2 matrix\n\
\  clear(dict)			Remove all entries from a dictionary\n\
\  dict=hashMap([['x',2],['y',3],['z',4]])\n\
\  				create a hash map from a nested list\n\
\  dict=treeMap()		Create a tree map, with sorted key order\n\
\  dict=linkedMap()		Create a linked hash map with insertion order\n\



com.singularsys.extexamples.consoles.ExtensionConsole.LambdaHelp=\
Lambda functions and higher order functions\n\
\ \ [1..10]			Gives a sequence of numbers\n\
\ \ primes().limit(5)		Generate an infinite stream of prime numbers\n\
\ \ x => x^2			define a lambda function\n\
\ \ [x,y] => x^y			lambda function with two arguments\n\
\ \ v => v[1]*v[1]+v[2]*v[2]	lambda function with a vector argument using indexing\n\
\ \ [[x,y]] => x*x+y*y		lambda function with a vector argument using pattern matching\n\
\ \ [[x,y],[u,v]] => x*u+y*v	pattern matching with two vector arguments\n\
\ \ apply(x=> x^2, 10)		apply function to a single item\n\
\ \ Sum = seq => fold([x,y]=>x+y,seq)\n\
\ 				Save a lambda function in a variable\n\
\ \ apply(Sum,[1..10])		Use saved lambda function\n\
\ \ define("sq",x=>x^2)		turn a lambda function into a normal function\n\
\ \ sq(5)				evaluate the new function\n\
\ \ define('**',[[a,b],[c,d]]=>[a*c-b*d,a*d+b*c],\n\
\ 	'complex mul','Operator,Binary,Left,Prec=*')\n\
\ 				Define a complex multiplication operator\n\
\ \ [0,1]**[2,3]			evaluate the new operator\n\
\ \ define('*',			Overload the * operator to allow matrix multiplication\n\
\ \     [[[a,b],[c,d]],[[x,y],[z,w]]] => [[a x+b z,a y+ b w],[c x+d z,c y+ d w]],\n\
\ \     'matrix mul','Operator,Overload=*')\n\
\ \ define('squares',seq=>seq.map(x=>x^2),'square a sequence','Function,Chained')\n\
\ 				Define a chained function\n\
\ \ [1..5].squares().sum()	use the new chained function\n\
\ \ small = primes().limit(10).toList()\n\
\ 				Convert streams to lists before assigning to a variable\n\
\ \ small + small			The variable can be uses as normal\n\
\n\
Generator functions\n\
\ \ iterate(1,i=>i*2,i=>i<100)	generate a sequence using two lambda functions\n\
\ \ iterate(1,x=>2*x).limit(10)\n\
\ 				Two arg version gives an infinite sequence\n\
\n\
Intermediate functions that return modified lists\n\
\ \ [1,2,3,4].map(x=> x^2)	apply function to every element of an array\n\
\ \ [3,2,7,6].sort([x,y]=>x-y)	sort sequence according to criteria\n\
\ \ [3,2,7,6].nsort()		sort numerically\n\
\ \ [3,2,7,6].rsort()		sort reverse numerically\n\
\ \ [1,2,3,4].filter(x=>x%2==0)	applies a filter to a list, returns the elements which meet a condition.\n\
\ \ [2,2,2,2,2]. merge([x,y]=>x^y,[1,2,3,4,5])\n\
\ 				merge two sequences element by element.\n\
\ \ [1..10].limit(5)		limit a sequence to n elements\n\
\ \ [1..10].skip(5)		skip n elements\n\
\ \ [1..10].filterWhile(x=>x<5)		return elements of a sequence while a condition is true\n\
\ \ [1,2,3].append([4,5,6])	append two sequences\n\
\n\
Terminal functions converting lists to a single value\n\
\ \ [1..10].fold([x,y]=> x+y)	fold a sequence using a binary lambda function\n\
\ \ [].foldOr([x,y]=> x+y, -1)	fold sequence with a default value for empty sequences\n\
\ \ [1..5].reduce(1,[x,y]=> x*y)	reduce a sequence with an intial value and a lambda function\n\
\ \ [3,2,7,6,8].sum()		return the sum of a sequence\n\
\ \ [3,2,7,6,8].min()		return the minimum of a sequence\n\
\ \ [3,2,7,6,8].max()		return the maximum of a sequence\n\
\ \ [1..10].last()		return the last element of a sequence\n\
\ \ [1..10].first()		return the first element of a sequence\n\
\ \ [].firstOr(-1)		return the first element of a sequence or a default value\n\
\ \ [1..10].count()		return the number of elements in a sequence\n\
\ \ [1..10].toList()		converts the stream to a list\n\

com.singularsys.extexamples.consoles.ExtensionConsole.StructureHelp=\n\
Structural commands:\n\
\  for(i=1;i<10;++i) { ... }	for loop\n\
\  while(i<10) { ... }		while loops\n\
\  break;			(inside a loop)\n\
\  continue;			(inside a loop)\n\
\  if(i<10) { ... } else { ... }\n\
\  statement; statement\n\
\  { statement; statement }\n\
\  print(a,b,c)			prints the arguments\n\
\  println(a,b,c)\n\
\  printf("%6.3f%n",x)\n\

com.singularsys.extexamples.consoles.ExtensionConsole.DiffHelp=\n\
Differentiation:\n\
\  diff(x^2,x)			differentiate x^2 with respect to x\n\
\  rules				prints the set of differentiation rules used\n\

com.singularsys.extexamples.consoles.ExtensionConsole.PreProcessHelp=\n\
Preprocessor commands:\n\
\  clean(0+1*x)			cleans an expression\n\
\  simplify(2x+3x)		simplifies an expression using the polynomial simplification algorithm\n\
\  expand((x+1)*(x-1))		expands a polynomial'\n\
\  compare(x+1+x, 2x+1)		compares with rearrangement but without expansion, returns -1,0,1\n\
\  symequals(x+1+x, 2x+1)	symbol equals with rearrangement but without expansion, returns true or false\n\
\  coeffs(x^2+2x+1,x)		extract coefficients as an array\n\
\  subst(x*y*z,y=x+1,z=x-1)	substitution rhs equations into the lhs expression\n\
\  eval(n)			evaluate during compile time, for example: 'expand((x+1)^eval(n))'\n\
\  preprocess(clean(0+x))	cause the preprocessor to be run during evaluation.\n\
\				e.g. to build an expression on the fly\n\
\				for(n=1;n<4;++n){preprocess(eq:=eqn(eq)+x^eval(n));}\n\
Symbolic assignment\n\
\  f := (x+1)^2			set f to have and equation from the rhs\n\
\  eqn(f)			extract equation from a symbolic variable\n\
\  diff(expand(f),x)		Apply symbolic and differentiation to a variable with an equation\n\
\  f				Evaluate f\n\
\  verbose on/verbose off	switch verbose mode on or off\n\

com.singularsys.extexamples.consoles.ExtensionConsole.MatrixHelp=\
Matrix operations:\n\
\  m = [[1,2],[3,4]]		creation of matrix\n\
\  u = [5,6]			creation of vector\n\
\  m[1][2]			find element in 1st row and 2nd column\n\
\  det(m)			the determinant of a matrix\n\
\  trace(m)			the trace of a matrix\n\
\  trans(m)			transpose of a matrix\n\
\  id(3)				creates a 3x3 identity matrix\n\
\  zeroMat(3,2)			creates a 3 by 2 matrix of zeros\n\
\  zeroVec(3)			creates a vector of zeros length 3\n\
\  size(m)			finds the length of a vector or size of a matrix\n\
\  inv(m)			find the inverse of m\n\
\  v=solve(m,u)			find solution of m * v = u\n\

com.singularsys.extexamples.consoles.ExtensionConsole.StatsHelp=\
Statistical functions:\n\
\  count(v)			count the number of elements\n\
\  min(v)			finds the min value in a vector or matrix\n\
\  max(v)			finds the max value in a vector or matrix\n\
\  sum(v)			finds the sum of the elements\n\
\  product(v)			finds the product of the elements\n\
\  mean(v)			finds the mean value in a vector or matrix\n\
\  var(v)			finds the variance of the values\n\
\  sd(v)				finds the standard deviation of the values\n\
\  median(v)			finds the mean value in a vector or matrix\n\
\  rank(d,data)			finds the rank of element d in data array\n\
\  ranks(v)			finds the ranks all the elements\n\
\  mode(v)			finds the mode of the values\n\
\  percentile(v,0.25)		25% percentile\n\

com.singularsys.extexamples.consoles.ExtensionConsole.RewriteHelp=\
Rewrite rules:\n\
\  rewrite(n)			applys a set of rewriting rules to an expression\n\
\				These rule can be used to expand vector and matrix expressions\n\
\  rewriterules			Prints the set of rules\n\

com.singularsys.extexamples.consoles.ExtensionConsole.DictionaryHelp=\
Dictionary operations:\n\
\  dict={'x':2, 'y':3}		creation of a dictionary\n\
\  get(dict,'x')			Gets the value associated with a key\n\
\  getOr(dict,'x',-1)		Gets the value associated with a key or a default value if the key is not found\n\
\  put(dict,'x',5)		Sets the value for a key\n\
\  remove(dict,'x')		Remove an entry from a dictionary\n\
\  containsKey(dict, 'x')	Tests if a key exists\n\
\  numEntries(dict)		Number of entries in the dictionary\n\
\  keys(dict)			The keys in a dictionary as a vector\n\
\  values(dict)			The values in a dictionary as a vector\n\
\  entries(dict)			The entries in a dictionary as a N by 2 matrix\n\
\  clear(dict)			Remove all entries from a dictionary\n\
\  dict=hashMap([['x',2],['y',3],['z',4]])\n\
\  				create a hash map from a nested list\n\
\  dict=treeMap()		Create a tree map, with sorted key order\n\
\  dict=linkedMap()		Create a linked hash map with insertion order\n\

com.singularsys.extexamples.consoles.StructuredConsole$PrintFunction.description=print its arguments
com.singularsys.extexamples.consoles.StructuredConsole$PrintfFunction.description=print its arguments with a format string
com.singularsys.extexamples.consoles.StructuredConsole.IntroText=Structured console, Jep with limited structural programming support.
com.singularsys.extexamples.consoles.StructuredConsole.HelpMessages=\n\
Structural commands:\n\n\
\ \ for(i=1;i<10;++i) { ... }\n\
\ \ while(i<10) { ... }  while loops\n\
\ \ break;   (inside a loop)\n\
\ \ continue;   (inside a loop)\n\
\ \ if(i<10) { ... } else { ... }\n\
\ \ statement; statement\n\
\ \ { statement; statement }\n\
\ \ print(a,b,c);\n\
\ \ println(a,b,c);\n\
\ \ printf(\"%6.3f%n\",x);\n\

com.singularsys.extexamples.consoles.XJepConsole.HelpMessages=\n\
Preprocessor commands:\n\
\  clean(0+1*x)			cleans an expression\n\
\  simplify(2x+3x)		simplifies an expression using the polynomial simplification algorithm\n\
\  expand((x+1)*(x-1))		expands a polynomial'\n\
\  compare(x+1+x, 2x+1)		compares with rearrangement but without expansion, returns -1,0,1\n\
\  symequals(x+1+x, 2x+1)	symbol equals with rearrangement but without expansion, returns true or false\n\
\  ecompare((x+1)^2,x^2+2x+1)	compares after expansion, returns -1, 0, 1\n\
\  coeffs(x^2+2x+1,x)		extract coefficients as an array\n\
\  subst(x*y*z,y=x+1,z=x-1)	substitution rhs equations into the lhs expression\n\
\  subsAll(x^n)			substitute all variables by their equations\n\
\  eval(n)			evaluate during compile time, for example: 'expand((x+1)^eval(n))'\n\
\  preprocess(clean(0+x))	cause the preprocessor to be run during evaluation.\n\
\				e.g. to build an expression on the fly\n\
\				eq = 1; n=2; preprocess(eq=eqn(eq)+x^eval(n));\n\
Symbolic assignment\n\
\  f = (x+1)^2			set f to have and equation from the rhs\n\
\  eqn(f)			extract equation from a symbolic variable\n\
\  f				Evaluate f\n\
\  verbose on/verbose off	switch verbose mode on or off\n\
