Z3 Language Tests

Following are test cases to try out in ZCubes. Please note that the examples follow z^3 Language. Apart from being simple, z^3 language also give you full programming capability of Javascript and more, as the language enhances and converts to Javascript internally. z^3 runs within browsers, desktops, servers, web-servers, etc., and provides a full scale experience to the users, in all modes, operating systems and platforms of computing.


Simple Matrix Creation

a=[1 2; 3]

a=[[1,2],[3]]

a=[1 2; 3 4]

a=[1 20; 2 3]

a=[[1, 20],[2, 3]]

a=[[1, 20],[2, [3 4]]];

a=[[1, 20],[2, [3; 4]]];

a=[[1, 20],[2, [3; 4;]]]; // worked with after 4 nothing was taken. Is that something to change later? with a null?

a=[1 20; 2;[3,4]; 3]

a=[1, (a+b); 2;[3,4]; 3]

a=[1*(a+b); 2;[3,4]; 3]

a=[1*(a+b); 2;[3,4+34]; 3];


Matrix Operators

|a|;

|10|;

a=|44|

b=34



Object Initialization

a=[3,4,2..20]

a={"car":a}

Creating Multi-Dimensional Matrices of Required Sizes

a=|4x3x3|

Matrix Operators

a=|3||*||4| //doesn't work

a=|5x5|

a=|5|

|10x3|

a=a|x+3|b;

a=|5||+||5|

a=|5||\||5| //for INTDIV

a=|5||/\||5| //for DIVPARTS

a=|5||%||5| //for MATRIXMOD

a=|3||CHIDIST||4| // should we make this CHIDIST with MOP? Could decide later for MATRIXOPS

1..100@"x^2"


Combinatorial Arguments and Implicit Looping

CHIDIST(1..100,2..3) .graph(1,0)


[Other]

[1..2,1..4,1..20]@"x^3+y^2+z^3"

FOR 20..30 "det(MAGICSQUARE(x))";

a=FOR 1..100 SIN;

a= FOR 20..30 "det(MAGICSQUARE(x))";


var a=FOR 20..30 "det(MAGICSQUARE(x))";

var a=FOR 20..30 "det(MAGICSQUARE(x))",b=FOR 1..100 COS;

radpiby3

a=SIN(radpiby3)

1..100.fillwith(1..10)

(1..100).fillwith(1..10)

(1..100..10).fillwith(1..10)

1..100.fillwith(10..100).$(CIRCLE)

1..100 .fillwith(10..100).$(CIRCLE)

1..100..130.fillwith(10..100).$(CIRCLE)

SIN@1..100@COS

SIN@1..100

1..100@COS

1..100..10@COS

1..100..10.fillwith(10..100).$(CIRCLE)

1..100.23..1023.1 .fillwith(10..1020).$(CIRCLE)

1..100..10.fillwith(1..10)

FOR 20..30 "det(MAGICSQUARE(x))";

FOR 20..30 "det(MAGICSQUARE(x))";

FOR 20..30 "det(MAGICSQUARE(x))";

1...100.0343..103.fillwith(1..10)


a=[1 (a+b); 2;[3,4]; 3]

Javascript Code & Z3

function z() { if(a<3) { return(false); } }

function () { if(a<3) { return(false) } }

A=(|3x4|@4.3)@SIN

|4|.$i([SUM,SIN,COS]);

|4|.$i(SUM,SIN,COS)

[["cats1","dogs1"],"birds"]<<<[[2,[COS]],[SIN]]

[["cats1","dogs1"],"birds"]<<<<[[2,[COS]],[SIN]]

[["cats1","dogs1"],"birds"]>>>>[[2,[COS]],[SIN]]

Series Comprehension

[#a-z,#A-Z,1..10,4..500]

a=#a-z

a=#1/1/16

var a=#;

b=#;

c=#;

d=#;

PMT(#1/1/2011,#2/2012) // did not work

var a=#a-x;

b=#1/1/2011;

a = a < 34 ? 3

Range Referencing

#TABLE3!A3:E6

a=#TABLE3!A3:E6

a=#A3:E6

a=SIN(#D8:E11,#H11:K12)

#TABLE3!A3:E6

a=#TABLE3!A3:E6

a=#A3:E6

#D8:E11

#TABLE3!A3:E6

[1,2,undefined,#].$(SIN)

a=[#1/1/2011,#2/2/2015]

[1,2,undefined].$(SIN)

[1,2,undefined,#].$(SIN)

v:=u+a*t

E=m*c^2;

Simple, Beautiful Notations

a=5!;

b=5%;

a=(a+x)!;

a=(a+x)*!34;

a=(5!)!

a=5!! will not work.

a=34!P!3

a=34!C!3

a=34!P!3!C!3

var a=2;

v:=u+a*t;

var b=3;

var a=2;

var v:=u+a*t;

var b=3;


var a=2;

var v:=u+a*t;

var b=3;

var a=2;

var v:=u+a*t,d=34;

var b=3;

var a=#a-x,d=#1/1/2011;

# means undefined by itself.

ad := a+b

1..3**3.$d (SIN)

(1..3**3).$d (SIN)

PRODUCT(n..1..-3)

a=#,b=#,c=#

FACTTRIPLE=PRODUCT(n..1..-3)

FACTTRIPLE:=PRODUCT(n..1..-3)

Conditional Matrix Projection

1..10|x<4|

1..10|x?x<4|

1..10|x?x<4:u|

1..10|x?x<4:u|1..10

1..10|x?u+x<4:u|1..10


|4||x?x<4:false||34| ;

|4||x?x<4||34|;

|4||x?x<4||34| ;

|4||x?x<4:34+y+z||34|;

|4||x?x<4|;

|4||x<4|;

|1||x<4||x>10|


1..10|x<4&&y>9|2..20

a=3!

a=100..|x+y|3

..100

10..

1..10|x<4|

1..10|x<4|34

1..10|x^3&&x^3<3000?x|w


0..10@"SIN(x^2,1..10)" .graph()

0..10@("SIN(x^2,1..10)" .graph())

0..10@"SIN(x^2,1..23..10)".graph(30).sin()

0..10@"SIN(x^2,1..23..10)".graph(30).sin()

1..1000..100@["x^2",COS] .graph()

0..10@"SIN(x^2,1..10)" .graph()

0..10@("SIN(x^2,1..10)" .graph())

0..10@"SIN(x^2,1..23..10)".graph(30).sin()

0..10@"SIN(x^2,1..23..10)".graph(30).sin()

0..10@"SIN(x^2,1..10)" .graph()

SIN(x^2,1..10)


1..3**3.$d (SIN)

(1..3**3).$d (SIN)


(1..1000..100@["x^2",COS] .$(SIN)) @SIN

0..10@"SIN(x^2)" .graph()

0..10@"SIN(x^2)".graph()

1..10|x<4|34

1..10|(x?x<4)|

var a=FOR 20..30 "det(MAGICSQUARE(x))", b=FOR 1..100 COS;


a=[1*(a+b); 2;[3,4+34]; 3]

|a| |10|

a=[1*(a+b); 2;[3,4+34]; 3]; |a|; |10|

PMT(4%, 12, 100000)

a=FOR(PMT, 100000,41% ,1..12)


pmt12:=PMT(x,y,12);

PMT(1000,26%)

vary...

Program Code in Any Language

Θ=3+x;

Θ(34)

അത:=34+അതx;

അത(4)

Z3 and JS

The can be intermixed, and it works beautifully. There are very few things you need to think about mixing syntax.

/*Enter Code Here in Z3/Javascript...*/

var a=10;

for(var b=1;b<a;b++)

{

console.log(b)

}


/*Enter Code Here in Z3/Javascript...*/

function test()

{

var a=25;

c=[]

for(var b=1;b<a;b++)

{

c.push(b)

}

return(c);

}

test()


More Commands and Programs to try

test:=x!;

test(3);

// NEW

1..67..4@[SIN,COS] .graphin()

1..(160%19)@SIN

a=radpiby3;

c=a@SIN;

c.graphin()

//check


deg222by3

rad2piby3

a=radpiby3 |*| 2

rad2piby3

radpiby3 |*| 2

a=radpiby3 |*| 3


//http://www.tribology-abc.com/calculators/default.htm //drag-drop calculate.

LOAD("loans")

LOAN(10000,12%,12)

LOAN(10000,12%3, 0)


LOAD("loans")

LOAN(10000,12%,12).PAYMENTS()


LOAD("countries")

COUNTRY(3..23)

LOAD("elements")

ELEMENT(3..23)

THINK "Jaipur"


|10|.fillwith(10..1000) |*| 20

|4|.fillwith(34..200..3).$("2*x^3")


a=radpiby4 |*| 28

a=|5||++||6|

CAL(6..11,2012)


["sunny"]<<<1..10

SIN(sunny)


morethanthree:=u>3

1..10@morethanthree


1..10|++|2..20


mary=[SIN,COS,TAN]

1..10@mary

["divya"]<<<["SIN(x)+COS(x)+x^2"]

1..10@divya


["sunny","sneha"]<<<[[1..100],[500..1000]]

sunny

sneha


c=1..35@SIN .graphin()

d=1..100;


[49,31,#].$(z^2)

vs.

[49,31,#].$("z^2")


a=#TABLE1!B1:B1*46

a=#TABLE1!B1*46 // has issues.

a=#TABLE1!B1:B1*462

a=#TABLE1!B1*462

a=(#1/1/2012-2/1/2012).length

|4|.fillwith(34..200..3).$("2*x^3")



a=2..9|*|TRANSPOSE(2..9)


(2..3)~ for transpose.

a=2..9|*|(2..9)~; //for transpose.

((2..3)~)*34

(2..3)*~34

//~ for transpose.


a=|3|

a~;


a=(#TABLE1!B1)~*46



/* Showing intermediate output */

a=1..100;

OUTPUT(a);


a=1..25;

OUTPUT(a);


b=SUM(a);


[a,b]


Obi:=z^3;

d=FOR Obi 1..431;

SUM(d)


c8:=u+a*t

c8


SETVALUE(#TABLE1!B2:D5,1100);

// sets into calci such values. TABLE1 needs to be opened through 'New-->Calci'

SETVALUE(#TABLE1!B2:D5,1..100);



1..1100.chunks(3) did not parse.

SETVALUE(#TABLE1!B2:D5,54..100.chunks(2));

SETVALUE(#TABLE1!B2:D5,54..100.chunks(2)~);



1..100.fillwith(1..10)


1..1100.chunks(3)


2Space!zcontrol2

FOR "SUM(1..x)" 1...1000000000...100


b=|4|

b.fillwith(1..123);

SIN(1..34)

a=1..20;

a.fillwith(2..3);



d=13;

SUM(d..10..-1)


b=1..100;

function Jay(x)

{

return(x+34)

}

1..100@Jay


a:=π*r^2;


a=|3|;

α:=π*r^2;

α(39);



Σ(1..100);


r=1..100@"π*r^2";


θ=1..5;

SIN(θ);


ctrl+g type greek name or unicode code and select and press ctrl+g to get the conversion into code. ctrl+u for uppercase greek etc. ctrl+space for hints.


sigma select ctrl+u gets Σ and then Σ(1..100).


മോോ=1..100;

ഐങ=2|*|മോോ


a="🍏🍎";

function x(n){return(REPEATCHAR(a,n))}

1..100@x


success="🍤";

1..100.map(()=>success);


ഒട്ടക൦=34;

ഒട്ടക൦=44+ഒട്ടക൦;


Yurttas:=SIN(c..30)

Yurttas(28)


(1..1000..100@["x^2",COS] .$(SIN))@SIN


fx:=SERIESSTR("x*3*_x+",1..x).join("")

1..10@fx



a=|3|;

	(a).rotate(45)


function das(x)

{

var adi=3;

return(adi+x)

}

das(4);


function fact(x)

{

return(x<1?1:fact(x-1)*x)

}

fact(19)


তণ=0;

FOR 1..(তণ+4) SIN;



v:=u+a*t;

ARRAYFY(v);

v(1..10,2..3,10..12);


//think of why this is not accurate.

// the matrix comes in incorrectly.

// Seems like it needs v:=u+a[0][0]*t;


v:=u[0]+a*t;

ARRAYFY(v,[0]);

v(1..10,2..3,10..12);



BOTTOMN([[1,2],[3,4],[4,5]],1..2)

TOPN([[1,2],[3,4],[4,5]],1..2)



VLOOKUP(5, [1..10]~, 1,TRUE)

// note ! is required to make it into a 2-D array. Any other tricks we could suggest?

VLOOKUP(21..26,|5|.fillwith(11..50), 1..5,FALSE)



(1..10~)

(1..10)~ // this makes a 2D array to be more accurate.

(1..10)



VLOOKUP(21..26,|5|.fillwith(11..50), 1..5,FALSE)


function x1(x){return(x+34)};x1(304)



todo


a=|4 2 3|


// had issue with VariableExpression.


// when do we var nowmark=Z3SetBookmark(); // when do we unset this?

SELECT * FROM A


Free Form Calci - Test from forms like: http://www.tribology-abc.com/calculators/default.htm