copy

 

 

Description

The copy function creates new copy of the object on the heap with its own unique object id. The new object id is returned by the copy function.

When to use

The copy function may appear similar to the setq function but its behavior is different if the target object is a collection object such as a Vector (Structures, vectors, lists and dictionaries are collection objects stored in the heap). See the Analytic Information Server Introduction Book).

When you use the setq function to assign a native data type such as Number, Void, Boolean, Text, the immediate data is copied to the target container. When you use the setq function on a collection data type such as a Vector (source), a pointer to the data location (the object id) is copied to the target container (target). Therefore, if the new container (target) changes a value in the vector, the (source) container will show the change since (source) and (target) are pointing to the same data. (From a C-programmer's perspective, the source and target are pointer dereferencing the same memory location). However if the copy function was used, it produces a copy of the vector (target) in a different memory location. Changes to the copy are only visible to the (target) container. (From a C-programmer's perspective, the copy function behaves like the memcpy standard function).

 

Syntax

(copy vector)



Name Description AIS Types
vectorThe Vector to be copied.Vector ShortVector PcodeVector FltVector NumVector IntVector CpxVector ObjVector BitVector


Returns:

An exact copy of the specified Vector.

 

Examples

Here are a number of links to Lambda coding examples which contain this instruction in various use cases.

Example_ObjVector_copy_009

This example shows how a Vector may be modified destructively or non-destructively using the the copy and setq function.

 

Argument Types

Here are the links to the data types of the function arguments.

Structure Dictionary Directory Pair
List Vector Brick Matrix
Lambda NumMatrix CpxVector ShortVector

Here are also a number of links to functions having arguments with any of these data types.

addMethod(BitVector) addMethod(Boolean) addMethod(Brick) addMethod(Character)
addMethod(CpxVector) addMethod(Date) addMethod(Dictionary) addMethod(Directory)
addMethod(FltVector) addMethod(Function) addMethod(IntVector) addMethod(List)
addMethod(Matrix) addMethod(NumMatrix) addMethod(NumVector) addMethod(Number)
addMethod(ObjVector) addMethod(ObjectRepository) addMethod(Pair) addMethod(PcodeVector)
addMethod(ShortVector) addMethod(String) addMethod(Structure) addMethod(Symbol)
addMethod(Vector) addMethod(Void) appendWriteln(ByteVector) append(BitVector)
append(Complex) append(CpxVector) append(FltVector) append(IntVector)
append(Matrix) append(NumMatrix) append(NumVector) append(ObjVector)
append(Pair) append(ShortVector) append(String) append(Structure)
append(Symbol) append(Vector) apply(BitVector) apply(CpxVector)
apply(FltVector) apply(IntVector) apply(Matrix) apply(NumMatrix)
apply(NumVector) apply(Pair) apply(ShortVector) apply(Structure)
apply(Vector) argCount(Lambda) argFetch(Lambda) associate(Pair)
attachLibrarian(ObjectRepository) balance(Lambda) binaryInsert(CpxVector) binaryInsert(FltVector)
binaryInsert(IntVector) binaryInsert(Matrix) binaryInsert(NumMatrix) binaryInsert(NumVector)
binaryInsert(ShortVector) binaryInsert(Structure) binaryInsert(Vector) binarySearch(CpxVector)
binarySearch(Dictionary) binarySearch(FltVector) binarySearch(IntVector) binarySearch(Matrix)
binarySearch(NumMatrix) binarySearch(NumVector) binarySearch(ObjVector) binarySearch(ShortVector)
binarySearch(Structure) binarySearch(Vector) bitToNumberVector(BitVector) bitToNumberVector(NumVector)
boolean(Boolean) c..r(List) callcc(Lambda) car(List)
car(Pair) cdr(BitVector) cdr(Brick) cdr(CpxVector)
cdr(Dictionary) cdr(Directory) cdr(FltVector) cdr(IntVector)
cdr(List) cdr(Matrix) cdr(NumMatrix) cdr(NumVector)
cdr(ObjVector) cdr(ShortVector) cdr(Structure) cdr(Vector)
character(Character) compareEQ(BitVector) compareEQ(Boolean) compareEQ(Brick)
compareEQ(Character) compareEQ(Complex) compareEQ(CpxVector) compareEQ(Date)
compareEQ(Dictionary) compareEQ(Directory) compareEQ(FltVector) compareEQ(Function)
compareEQ(IntVector) compareEQ(Lambda) compareEQ(List) compareEQ(Matrix)
compareEQ(NumMatrix) compareEQ(NumVector) compareEQ(Number) compareEQ(ObjVector)
compareEQ(ObjectRepository) compareEQ(Pair) compareEQ(ShortVector) compareEQ(String)
compareEQ(Structure) compareEQ(Symbol) compareEQ(Vector) compareEQ(Void)
compareGE(BitVector) compareGE(Boolean) compareGE(Brick) compareGE(Character)
compareGE(Complex) compareGE(CpxVector) compareGE(Date) compareGE(Dictionary)
compareGE(Directory) compareGE(Function) compareGE(IntVector) compareGE(Lambda)
compareGE(List) compareGE(Matrix) compareGE(NumMatrix) compareGE(Number)
compareGE(ObjVector) compareGE(ObjectRepository) compareGE(Pair) compareGE(ShortVector)
compareGE(String) compareGE(Structure) compareGE(Symbol) compareGE(Vector)
compareGE(Void) compareGT(BitVector) compareGT(Boolean) compareGT(Brick)
compareGT(Character) compareGT(Complex) compareGT(CpxVector) compareGT(Date)
compareGT(Dictionary) compareGT(Directory) compareGT(Function) compareGT(IntVector)
compareGT(Lambda) compareGT(List) compareGT(Matrix) compareGT(NumMatrix)
compareGT(NumVector) compareGT(Number) compareGT(ObjVector) compareGT(ObjectRepository)
compareGT(Pair) compareGT(ShortVector) compareGT(String) compareGT(Structure)
compareGT(Symbol) compareGT(Vector) compareGT(Void) compareLE(BitVector)
compareLE(Boolean) compareLE(Brick) compareLE(Character) compareLE(Complex)
compareLE(CpxVector) compareLE(Date) compareLE(Dictionary) compareLE(Directory)
compareLE(FltVector) compareLE(Function) compareLE(IntVector) compareLE(Lambda)
compareLE(List) compareLE(Matrix) compareLE(NumMatrix) compareLE(NumVector)
compareLE(Number) compareLE(ObjVector) compareLE(ObjectRepository) compareLE(Pair)
compareLE(ShortVector) compareLE(String) compareLE(Structure) compareLE(Symbol)
compareLE(Vector) compareLE(Void) compareLT(BitVector) compareLT(Boolean)
compareLT(Brick) compareLT(Character) compareLT(Complex) compareLT(CpxVector)
compareLT(Date) compareLT(Dictionary) compareLT(Directory) compareLT(FltVector)
compareLT(Function) compareLT(IntVector) compareLT(Lambda) compareLT(List)
compareLT(Matrix) compareLT(NumMatrix) compareLT(NumVector) compareLT(Number)
compareLT(ObjVector) compareLT(ObjectRepository) compareLT(Pair) compareLT(ShortVector)
compareLT(String) compareLT(Structure) compareLT(Symbol) compareLT(Vector)
compareLT(Void) compareNE(BitVector) compareNE(Boolean) compareNE(Brick)
compareNE(Character) compareNE(Complex) compareNE(CpxVector) compareNE(Date)
compareNE(Dictionary) compareNE(Directory) compareNE(FltVector) compareNE(Function)
compareNE(IntVector) compareNE(Lambda) compareNE(List) compareNE(Matrix)
compareNE(NumMatrix) compareNE(NumVector) compareNE(Number) compareNE(ObjVector)
compareNE(ObjectRepository) compareNE(Pair) compareNE(ShortVector) compareNE(String)
compareNE(Structure) compareNE(Symbol) compareNE(Vector) compareNE(Void)
compare(BitVector) compare(Boolean) compare(Brick) compare(Character)
compare(Complex) compare(CpxVector) compare(Date) compare(Dictionary)
compare(Directory) compare(FltVector) compare(Function) compare(IntVector)
compare(Lambda) compare(List) compare(Matrix) compare(NumMatrix)
compare(NumVector) compare(Number) compare(ObjVector) compare(ObjectRepository)
compare(Pair) compare(ShortVector) compare(String) compare(Structure)
compare(Symbol) compare(Vector) compare(Void) comparison(BitVector)
comparison(Boolean) comparison(Brick) comparison(Character) comparison(Complex)
comparison(Date) comparison(Dictionary) comparison(Directory) comparison(FltVector)
comparison(Function) comparison(IntVector) comparison(List) comparison(Matrix)
comparison(NumMatrix) comparison(NumVector) comparison(Number) comparison(ObjVector)
comparison(ObjectRepository) comparison(Pair) comparison(ShortVector) comparison(String)
comparison(Structure) comparison(Symbol) comparison(Vector) comparison(Void)
compile(Lambda) compile(List) cons(Pair) copy(BitVector)
copy(Brick) copy(CpxVector) copy(Dictionary) copy(Directory)
copy(FltVector) copy(IntVector) copy(Lambda) copy(List)
copy(Matrix) copy(NumMatrix) copy(NumVector) copy(ObjVector)
copy(Pair) copy(PcodeVector) copy(ShortVector) copy(Structure)
copy(Vector) count(Dictionary) count(Directory) count(List)
count(Matrix) count(NumMatrix) count(Pair) count(Structure)
count(Vector) debugBrowsableProcs(Context) debugBrowsableProcs(Lambda) debugDialog(String)
debug(Context) debug(Lambda) defchild(Lambda) define(macro)(Lambda)
defineStructure(Structure) define(Lambda) defmacro(Lambda) defmethod(BitVector)
defmethod(Boolean) defmethod(Brick) defmethod(Character) defmethod(Date)
defmethod(Dictionary) defmethod(Directory) defmethod(FltVector) defmethod(Function)
defmethod(IntVector) defmethod(List) defmethod(Matrix) defmethod(NumMatrix)
defmethod(NumVector) defmethod(Number) defmethod(ObjectRepository) defmethod(Pair)
defmethod(ShortVector) defmethod(String) defmethod(Structure) defmethod(Symbol)
defmethod(Vector) defmethod(Void) deforphan(Lambda) defriend(Lambda)
defstruct(Structure) defun(Lambda) deleteRows(Brick) delete(Dictionary)
delete(Directory) delete(FltVector) delete(IntVector) delete(List)
delete(Matrix) delete(NumMatrix) delete(NumVector) delete(ObjVector)
delete(ObjectRepository) delete(Pair) delete(ShortVector) delete(Structure)
delete(Vector) detachLibrarian(ObjectRepository) disassemble(Context) disassemble(Lambda)
display(ByteVector) display(FileIO) evalInSyncLocalContext(Context) eval(Lambda)
eval(List) exportTab(Lambda) exportTab(ObjectRepository) fieldsOf(Structure)
findBlock(BitVector) find(String) freeBlock(BitVector) globalBinding(Context)
globalBinding(Lambda) importTab(Lambda) importTab(ObjectRepository) insertRows(Brick)
insert(Dictionary) insert(Directory) insert(FltVector) insert(IntVector)
insert(Matrix) insert(NumMatrix) insert(NumVector) insert(ObjVector)
insert(ShortVector) insert(Structure) insert(Vector) inside(BitVector)
inside(Dictionary) inside(Directory) inside(IntVector) inside(List)
inside(Matrix) inside(NumMatrix) inside(NumVector) inside(ShortVector)
inside(Structure) inside(Vector) inspect(Context) inspect(Lambda)
inspect(ObjectRepository) integer(Integer) isAtom(BitVector) isAtom(Brick)
isAtom(Dictionary) isAtom(Directory) isAtom(FltVector) isAtom(IntVector)
isAtom(List) isAtom(Matrix) isAtom(NumMatrix) isAtom(NumVector)
isAtom(ObjVector) isAtom(Pair) isAtom(PcodeVector) isAtom(ShortVector)
isAtom(Structure) isAtom(Vector) isBitVector(BitVector) isBoolean(Boolean)
isBound(Dictionary) isBound(Directory) isBound(Structure) isByteVector(ByteVector)
isCharAlphabetic(ByteVector) isCharAlphabetic(String) isCharAlphabetic(Symbol) isCharAlphanumeric(ByteVector)
isCharAlphanumeric(String) isCharAlphanumeric(Symbol) isCharLowercase(ByteVector) isCharLowercase(String)
isCharLowercase(Symbol) isCharName(ByteVector) isCharName(String) isCharName(Symbol)
isCharNumeric(ByteVector) isCharNumeric(String) isCharNumeric(Symbol) isCharUppercase(ByteVector)
isCharUppercase(String) isCharUppercase(Symbol) isCharWhitespace(ByteVector) isCharWhitespace(String)
isCharWhitespace(Symbol) isChar(String) isCharacter(Character) isComplex(Complex)
isDate(Date) isDictionary(Dictionary) isDirectory(Directory) isEqual(BitVector)
isEqual(Boolean) isEqual(Brick) isEqual(Character) isEqual(Complex)
isEqual(Date) isEqual(Dictionary) isEqual(Directory) isEqual(FltVector)
isEqual(Function) isEqual(IntVector) isEqual(List) isEqual(Matrix)
isEqual(NumMatrix) isEqual(NumVector) isEqual(Number) isEqual(ObjVector)
isEqual(Pair) isEqual(ShortVector) isEqual(String) isEqual(Structure)
isEqual(Vector) isEqual(Void) isError(Error) isFloatVector(FltVector)
isIdentical(BitVector) isIdentical(Boolean) isIdentical(Brick) isIdentical(Character)
isIdentical(Complex) isIdentical(Date) isIdentical(Dictionary) isIdentical(Directory)
isIdentical(Error) isIdentical(FltVector) isIdentical(Function) isIdentical(IntVector)
isIdentical(List) isIdentical(Matrix) isIdentical(NumMatrix) isIdentical(NumVector)
isIdentical(Number) isIdentical(ObjVector) isIdentical(ObjectRepository) isIdentical(Pair)
isIdentical(PcodeVector) isIdentical(ShortVector) isIdentical(Structure) isIdentical(Vector)
isIdentical(Void) isInside(BitVector) isInside(Dictionary) isInside(Directory)
isInside(IntVector) isInside(List) isInside(Matrix) isInside(NumMatrix)
isInside(NumVector) isInside(ObjVector) isInside(Pair) isInside(ShortVector)
isInside(Structure) isInside(Vector) isIntegerVector(IntVector) isInteger(Integer)
isMatrix(Matrix) isMember(BitVector) isMember(Dictionary) isMember(Directory)
isMember(IntVector) isMember(List) isMember(Matrix) isMember(NumMatrix)
isMember(NumVector) isMember(ObjVector) isMember(Pair) isMember(ShortVector)
isMember(Structure) isMember(Vector) isMoney(Number) isNumberMatrix(NumMatrix)
isNumberVector(NumVector) isNumber(Number) isObjectVector(ObjVector) isObject(BitVector)
isObject(Brick) isObject(ByteVector) isObject(Dictionary) isObject(Directory)
isObject(FltVector) isObject(IntVector) isObject(List) isObject(Matrix)
isObject(NumMatrix) isObject(NumVector) isObject(ObjVector) isObject(Pair)
isObject(PcodeVector) isObject(ShortVector) isObject(String) isObject(Structure)
isObject(Symbol) isObject(Vector) isPair(List) isPair(Pair)
isPcodeVector(PcodeVector) isString(String) isStructure(Structure) isSymbol(Symbol)
isText(String) isType(BitVector) isType(Boolean) isType(Brick)
isType(Character) isType(Complex) isType(Date) isType(Dictionary)
isType(Directory) isType(FltVector) isType(Function) isType(IntVector)
isType(Matrix) isType(NumMatrix) isType(NumVector) isType(Number)
isType(ObjVector) isType(ObjectRepository) isType(Pair) isType(ShortVector)
isType(String) isType(Structure) isType(Symbol) isType(Vector)
isType(Void) isVector(Vector) lambda(Lambda) last(List)
length(BitVector) length(Brick) length(Dictionary) length(Directory)
length(FltVector) length(IntVector) length(List) length(Matrix)
length(NumMatrix) length(NumVector) length(ObjVector) length(ObjectRepository)
length(Pair) length(PcodeVector) length(ShortVector) length(String)
length(Structure) length(Symbol) length(Vector) lisp(Lambda)
lisp(List) list(List) loadRepository(ObjectRepository) macroReplace(String)
makeDictionary(Dictionary) makeGaussianMatrix(NumMatrix) makeGramMatrix(NumMatrix) makeLambda(Lambda)
makeQuotedList(List) makeStructure(Structure) map(Dictionary) map(Directory)
map(FltVector) map(IntVector) map(List) map(Matrix)
map(NumMatrix) map(NumVector) map(Pair) map(ShortVector)
map(Structure) map(Vector) mapc(Dictionary) mapc(Directory)
mapc(FltVector) mapc(IntVector) mapc(List) mapc(Matrix)
mapc(NumMatrix) mapc(NumVector) mapc(Pair) mapc(ShortVector)
mapc(Structure) mapc(Vector) matrixGaussianEliminate(NumMatrix) matrixGaussianSubstitute(NumMatrix)
member(BitVector) member(Dictionary) member(Directory) member(IntVector)
member(List) member(Matrix) member(NumMatrix) member(NumVector)
member(ObjVector) member(ShortVector) member(Structure) member(Vector)
methodsOf(BitVector) methodsOf(Boolean) methodsOf(Brick) methodsOf(Character)
methodsOf(Complex) methodsOf(Date) methodsOf(Dictionary) methodsOf(Directory)
methodsOf(FltVector) methodsOf(Function) methodsOf(IntVector) methodsOf(List)
methodsOf(Matrix) methodsOf(NumMatrix) methodsOf(NumVector) methodsOf(Number)
methodsOf(ObjVector) methodsOf(ObjectRepository) methodsOf(Pair) methodsOf(PcodeVector)
methodsOf(ShortVector) methodsOf(String) methodsOf(Structure) methodsOf(Symbol)
methodsOf(Vector) methodsOf(Void) money(Number) morph(List)
myself(Lambda) new(BitVector) new(Brick) new(ByteVector)
new(CpxVector) new(Dictionary) new(Directory) new(FltVector)
new(IntVector) new(Lambda) new(Matrix) new(NumMatrix)
new(NumVector) new(ObjVector) new(ObjectRepository) new(PcodeVector)
new(ShortVector) new(String) new(Structure) new(Symbol)
new(Vector) number(Number) objectToDictionary(Dictionary) objectToDirectory(Directory)
objectToList(List) objectToMatrix(Matrix) objectToNumMatrix(NumMatrix) objectToNumVector(NumVector)
objectToStructure(Structure) objectToVector(Vector) onError(Error) onError(Lambda)
pair(Pair) parse(String) postHttp(String) postHttp(Text)
product(Number) proplist(Symbol) proprecord(Symbol) putprop(Symbol)
quote(List) rank(Matrix) rank(NumMatrix) refAttributes(Dictionary)
refAttributes(Directory) refAttributes(Structure) refAttributes(Vector) refLibrarian(ObjectRepository)
refValues(Dictionary) refValues(Directory) refValues(Structure) refValues(Vector)
ref(BitVector) ref(Boolean) ref(Brick) ref(Character)
ref(Complex) ref(Date) ref(Dictionary) ref(Directory)
ref(FltVector) ref(Function) ref(IntVector) ref(Lambda)
ref(List) ref(Matrix) ref(NumMatrix) ref(NumVector)
ref(Number) ref(ObjVector) ref(ObjectRepository) ref(PcodeVector)
ref(ShortVector) ref(String) ref(Structure) ref(Symbol)
ref(Vector) ref(Void) remProp(Symbol) remove(BitVector)
remove(Dictionary) remove(Directory) remove(IntVector) remove(Matrix)
remove(NumMatrix) remove(NumVector) remove(ObjVector) remove(ShortVector)
remove(Structure) remove(Vector) resize(BitVector) resize(Dictionary)
resize(Directory) resize(FltVector) resize(IntVector) resize(Matrix)
resize(NumMatrix) resize(NumVector) resize(ObjVector) resize(ShortVector)
resize(Structure) resize(Vector) reverse(BitVector) reverse(FltVector)
reverse(IntVector) reverse(List) reverse(Matrix) reverse(NumMatrix)
reverse(NumVector) reverse(ObjVector) reverse(ShortVector) reverse(Vector)
saveImmediate(ObjectRepository) saveObject(ByteVector) saveObject(Integer) saveRepository(ObjectRepository)
send(BitVector) send(Boolean) send(Brick) send(Character)
send(CpxVector) send(Date) send(Dictionary) send(Directory)
send(FltVector) send(Function) send(IntVector) send(Lambda)
send(List) send(Matrix) send(NumMatrix) send(NumVector)
send(Number) send(ObjectRepository) send(Pair) send(ShortVector)
send(String) send(Structure) send(Symbol) send(Vector)
send(Void) setAttributes(Dictionary) setAttributes(Directory) setAttributes(Structure)
setAttributes(Vector) setBlock(BitVector) setCar(List) setCar(Pair)
setCdr(BitVector) setCdr(Brick) setCdr(Dictionary) setCdr(Directory)
setCdr(FltVector) setCdr(IntVector) setCdr(List) setCdr(Matrix)
setCdr(NumMatrix) setCdr(NumVector) setCdr(ObjVector) setCdr(Pair)
setCdr(ShortVector) setCdr(Structure) setCdr(Vector) setLastCdr(BitVector)
setLastCdr(FltVector) setLastCdr(IntVector) setLastCdr(List) setLastCdr(Matrix)
setLastCdr(NumMatrix) setLastCdr(NumVector) setLastCdr(ObjVector) setLastCdr(Structure)
setLastCdr(Vector) setq(BitVector) setq(Boolean) setq(Brick)
setq(Character) setq(Date) setq(Dictionary) setq(Directory)
setq(FltVector) setq(IntVector) setq(Lambda) setq(List)
setq(Matrix) setq(NumVector) setq(Number) setq(ObjVector)
setq(ObjectRepository) setq(PcodeVector) setq(ShortVector) setq(String)
setq(Structure) setq(Symbol) setq(Vector) setq(Void)
sizeof(BitVector) sizeof(Boolean) sizeof(Brick) sizeof(ByteVector)
sizeof(Character) sizeof(Complex) sizeof(Date) sizeof(Dictionary)
sizeof(Directory) sizeof(FltVector) sizeof(Function) sizeof(IntVector)
sizeof(List) sizeof(Matrix) sizeof(NumMatrix) sizeof(NumVector)
sizeof(Number) sizeof(ObjVector) sizeof(ObjectRepository) sizeof(Pair)
sizeof(PcodeVector) sizeof(ShortVector) sizeof(String) sizeof(Structure)
sizeof(Symbol) sizeof(Vector) sizeof(Void) sort(BitVector)
sort(Dictionary) sort(Directory) sort(FltVector) sort(IntVector)
sort(List) sort(Matrix) sort(NumMatrix) sort(NumVector)
sort(ObjVector) sort(ShortVector) sort(Structure) sort(Vector)
stringToBVector(String) stringToVector(String) string(Complex) string(String)
svmRegression(Vector) type(BitVector) type(Boolean) type(Brick)
type(ByteVector) type(Character) type(Complex) type(Date)
type(Dictionary) type(Directory) type(FltVector) type(Function)
type(IntVector) type(Lambda) type(Matrix) type(NumMatrix)
type(NumVector) type(Number) type(ObjVector) type(ObjectRepository)
type(Pair) type(PcodeVector) type(ShortVector) type(String)
type(Structure) type(Symbol) type(Vector) type(Void)
uniqueInsert(FltVector) uniqueInsert(IntVector) uniqueInsert(Matrix) uniqueInsert(NumMatrix)
uniqueInsert(NumVector) uniqueInsert(ObjVector) uniqueInsert(ShortVector) uniqueInsert(Structure)
uniqueInsert(Vector) vectorBinaryInnerProduct(NumVector) vectorBipolarInnerProduct(NumVector) vectorCosineInnerProduct(NumVector)
vectorCubeInnerProduct(NumVector) vectorDelete(Directory) vectorExpInnerProduct(NumVector) vectorFill(BitVector)
vectorFill(FltVector) vectorFill(IntVector) vectorFill(Matrix) vectorFill(NumMatrix)
vectorFill(NumVector) vectorFill(ObjVector) vectorFill(ShortVector) vectorFill(Vector)
vectorInnerProduct(NumVector) vectorLogInnerProduct(NumVector) vectorQuartInnerProduct(NumVector) vectorQuintInnerProduct(NumVector)
vectorSigmoidInnerProduct(NumVector) vectorSineInnerProduct(NumVector) vectorSquareInnerProduct(NumVector) vectorTanInnerProduct(NumVector)
vectorTanhInnerProduct(NumVector) writeln(ByteVector) writeln(String) writeln(Text)

How do I contact the AIS team?

You can always talk with the AIS at aiserver.sourceforge.net.