package Ġglm _. vec 4 Ċ Ċ import Ġglm _. * Ċ import Ġglm _. vec 1 . Vec 1 bool Ċ import Ġglm _. vec 1 . Vec 1 t Ċ import Ġglm _. vec 2 . Vec 2 bool Ċ import Ġglm _. vec 2 . Vec 2 l Ċ import Ġglm _. vec 2 . Vec 2 t Ċ import Ġglm _. vec 3 . Vec 3 bool Ċ import Ġglm _. vec 3 . Vec 3 l Ċ import Ġglm _. vec 3 . Vec 3 t Ċ import Ġglm _. vec 4 . operators . vec 4 l _ operators Ċ import Ġk ool .* Ċ import Ġorg . lwjgl . system . Memory Stack Ċ import Ġorg . lwjgl . system . Memory Util . mem Get Long Ċ import Ġorg . lwjgl . system . Memory Util . mem Put Long Ċ import Ġjava . io . Print Stream Ċ import Ġjava . nio .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġelect Ġon Ġ 0 9 / 1 0 / 1 6 . Ċ Ġ*/ Ċ Ċ class ĠVec 4 l ( var Ġofs : ĠInt , Ġvar Ġarray : ĠLong Array ) Ġ: ĠVec 4 t < Long >(), ĠTo Buffer Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġx : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarray [ ofs ] ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġarray . set ( ofs , Ġvalue ) ĊĠĠĠ Ġoverride Ġvar Ġy : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarray [ ofs Ġ+ Ġ 1 ] ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġarray . set ( ofs Ġ+ Ġ 1 , Ġvalue ) ĊĠĠĠ Ġoverride Ġvar Ġz : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarray [ ofs Ġ+ Ġ 2 ] ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġarray . set ( ofs Ġ+ Ġ 2 , Ġvalue ) ĊĠĠĠ Ġoverride Ġvar Ġw : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarray [ ofs Ġ+ Ġ 3 ] ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġarray . set ( ofs Ġ+ Ġ 3 , Ġvalue ) ĊĊĠĠĠ Ġ// Ġ-- ĠImp licit Ġbasic Ġconstructors Ġ-- ĊĊĠĠĠ Ġconstructor () Ġ: Ġthis ( 0 ) ĊĠĠĠ Ġconstructor ( v : ĠVec 4 l ) Ġ: Ġthis ( v . x , Ġv . y , Ġv . z , Ġv . w ) ĊĠĠĠ Ġconstructor ( v : ĠVec 3 l ) Ġ: Ġthis ( v . x , Ġv . y , Ġv . z , Ġ 0 ) ĊĠĠĠ Ġconstructor ( v : ĠVec 2 l ) Ġ: Ġthis ( v . x , Ġv . y , Ġ 0 , Ġ 0 ) ĊĊĠĠĠ Ġ// Ġ-- ĠExplicit Ġbasic Ġconstructors Ġ-- ĊĊĠĠĠ Ġconstructor ( x : ĠLong ) Ġ: Ġthis ( x , Ġx , Ġx , Ġx ) ĊĠĠĠ Ġconstructor ( x : ĠLong , Ġy : ĠLong , Ġz : ĠLong , Ġw : ĠLong ) Ġ: Ġthis ( 0 , Ġlong ArrayOf ( x , Ġy , Ġz , Ġw )) ĊĊĠĠĠ Ġ// Ġ-- ĠConversion Ġscalar Ġconstructors Ġ-- ĊĊĠĠĠ Ġconstructor ( v : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( v . x , Ġv . x , Ġv . x , Ġv . x ) ĊĊĠĠĠ Ġ// ĠExplicit Ġconversions Ġ( From Ġsection Ġ 5 . 4 . 1 ĠConversion Ġand Ġscalar Ġconstructors Ġof ĠGL SL Ġ 1 . 3 0 . 0 8 Ġspecification ) ĊĊĠĠĠ Ġconstructor ( x : ĠNumber ) Ġ: Ġthis ( x , Ġx , Ġx , Ġx ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠNumber , Ġz : ĠNumber , Ġw : ĠNumber ) Ġ: Ġthis ( x . L , Ġy . L , Ġz . L , Ġw . L ) ĊĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠNumber , Ġz : ĠNumber , Ġw : ĠNumber ) Ġ: Ġthis ( x . x , Ġy , Ġz , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠNumber , Ġw : ĠNumber ) Ġ: Ġthis ( x , Ġy . x , Ġz , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠNumber , Ġw : ĠNumber ) Ġ: Ġthis ( x . x , Ġy . x , Ġz , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠNumber , Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( x , Ġy , Ġz . x , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠNumber , Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( x . x , Ġy , Ġz . x , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( x , Ġy . x , Ġz . x , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( x . x , Ġy . x , Ġz . x , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠNumber , Ġz : ĠNumber , Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy , Ġz , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠNumber , Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy . x , Ġz , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠNumber , Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy . x , Ġz , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠNumber , Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy , Ġz . x , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠNumber , Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy , Ġz . x , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy . x , Ġz . x , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠVec 1 t < out ĠNumber >, Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy . x , Ġz . x , Ġw . x ) ĊĊĠĠĠ Ġconstructor ( xy : ĠVec 2 t < out ĠNumber >, Ġz : ĠNumber , Ġw : ĠNumber ) Ġ: Ġthis ( xy . x , Ġxy . y , Ġz , Ġw ) ĊĠĠĠ Ġconstructor ( xy : ĠVec 2 t < out ĠNumber >, Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( xy . x , Ġxy . y , Ġz . x , Ġw ) ĊĠĠĠ Ġconstructor ( xy : ĠVec 2 t < out ĠNumber >, Ġz : ĠNumber , Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( xy . x , Ġxy . y , Ġz , Ġw . x ) ĊĠĠĠ Ġconstructor ( xy : ĠVec 2 t < out ĠNumber >, Ġz : ĠVec 1 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( xy . x , Ġxy . y , Ġz . x , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy z : ĠVec 2 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( x , Ġy z . x , Ġy z . y , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy z : ĠVec 2 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( x . x , Ġy z . x , Ġy z . y , Ġw ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy z : ĠVec 2 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy z . x , Ġy z . y , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy z : ĠVec 2 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy z . x , Ġy z . y , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠNumber , Ġz w : ĠVec 2 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy , Ġz w . x , Ġz w . y ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠNumber , Ġz w : ĠVec 2 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy , Ġz w . x , Ġz w . y ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy : ĠVec 1 t < out ĠNumber >, Ġz w : ĠVec 2 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy , Ġz w . x , Ġz w . y ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy : ĠVec 1 t < out ĠNumber >, Ġz w : ĠVec 2 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy . x , Ġz w . x , Ġz w . y ) ĊĠĠĠ Ġconstructor ( xyz : ĠVec 3 t < out ĠNumber >, Ġw : ĠNumber ) Ġ: Ġthis ( xyz . x , Ġxyz . y , Ġxyz . z , Ġw ) ĊĠĠĠ Ġconstructor ( xyz : ĠVec 3 t < out ĠNumber >, Ġw : ĠVec 1 t < out ĠNumber >) Ġ: Ġthis ( xyz . x , Ġxyz . y , Ġxyz . z , Ġw . x ) ĊĠĠĠ Ġconstructor ( x : ĠNumber , Ġy zw : ĠVec 3 t < out ĠNumber >) Ġ: Ġthis ( x , Ġy zw . x , Ġy zw . y , Ġy zw . z ) ĊĠĠĠ Ġconstructor ( x : ĠVec 1 t < out ĠNumber >, Ġy zw : ĠVec 3 t < out ĠNumber >) Ġ: Ġthis ( x . x , Ġy zw . x , Ġy zw . y , Ġy zw . z ) ĊĠĠĠ Ġconstructor ( xy : ĠVec 2 t < out ĠNumber >, Ġz w : ĠVec 2 t < out ĠNumber >) Ġ: Ġthis ( xy . x , Ġxy . y , Ġz w . x , Ġz w . y ) ĊĠĠĠ Ġconstructor ( v : ĠVec 4 t < out ĠNumber >) Ġ: Ġthis ( v . x , Ġv . y , Ġv . z , Ġv . w ) ĊĊĠĠĠ Ġconstructor ( v : ĠVec 1 bool ) Ġ: Ġthis ( v . x . L , Ġ 0 , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġconstructor ( v : ĠVec 2 bool ) Ġ: Ġthis ( v . x . L , Ġv . y . L , Ġ 0 , Ġ 1 ) ĊĠĠĠ Ġconstructor ( v : ĠVec 3 bool ) Ġ: Ġthis ( v . x . L , Ġv . y . L , Ġv . z . L , Ġ 1 ) ĊĠĠĠ Ġconstructor ( v : ĠVec 4 bool ) Ġ: Ġthis ( v . x . L , Ġv . y . L , Ġv . z . L , Ġv . w . L ) ĊĊĠĠĠ Ġconstructor ( bytes : ĠByteArray , Ġindex : ĠInt Ġ= Ġ 0 , Ġone Byte One Long : ĠBoolean Ġ= Ġfalse , Ġbig Endian : ĠBoolean Ġ= Ġtrue ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index ]. L Ġelse Ġbytes . getLong ( index , Ġbig Endian ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 1 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES , Ġbig Endian ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 2 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 2 , Ġbig Endian ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 3 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 3 , Ġbig Endian )) ĊĊĠĠĠ Ġconstructor ( chars : ĠChar Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( chars [ index ]. L , Ġchars [ index Ġ+ Ġ 1 ]. L , Ġchars [ index Ġ+ Ġ 2 ]. L , Ġchars [ index Ġ+ Ġ 3 ]. L ) ĊĠĠĠ Ġconstructor ( shorts : ĠShort Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( shorts [ index ], Ġshort s [ index Ġ+ Ġ 1 ], Ġshort s [ index Ġ+ Ġ 2 ], Ġshort s [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( ints : ĠInt Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( ints [ index ], Ġints [ index Ġ+ Ġ 1 ], Ġints [ index Ġ+ Ġ 2 ], Ġints [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( long s : ĠLong Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( long s [ index ], Ġlong s [ index Ġ+ Ġ 1 ], Ġlong s [ index Ġ+ Ġ 2 ], Ġlong s [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( float s : ĠFloat Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( float s [ index ], Ġfloats [ index Ġ+ Ġ 1 ], Ġfloats [ index Ġ+ Ġ 2 ], Ġfloats [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( double s : ĠDouble Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( double s [ index ], Ġdouble s [ index Ġ+ Ġ 1 ], Ġdouble s [ index Ġ+ Ġ 2 ], Ġdouble s [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( b ooleans : ĠBoolean Array , Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( b ooleans [ index ]. L , Ġb ooleans [ index Ġ+ Ġ 1 ]. L , Ġb ooleans [ index Ġ+ Ġ 2 ]. L , Ġb ooleans [ index Ġ+ Ġ 3 ]. L ) ĊĊĠĠĠ Ġconstructor ( numbers : ĠArray < out ĠNumber >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( numbers [ index ], Ġnumbers [ index Ġ+ Ġ 1 ], Ġnumbers [ index Ġ+ Ġ 2 ], Ġnumbers [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( chars : ĠArray < Char >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( chars [ index ]. L , Ġchars [ index Ġ+ Ġ 1 ]. L , Ġchars [ index Ġ+ Ġ 2 ]. L , Ġchars [ index Ġ+ Ġ 3 ]. L ) ĊĠĠĠ Ġconstructor ( b ooleans : ĠArray < Boolean >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( b ooleans [ index ]. L , Ġb ooleans [ index Ġ+ Ġ 1 ]. L , Ġb ooleans [ index Ġ+ Ġ 2 ]. L , Ġb ooleans [ index Ġ+ Ġ 3 ]. L ) ĊĊĠĠĠ Ġconstructor ( list : ĠIterable <* >, Ġindex : ĠInt Ġ= Ġ 0 ) Ġ: Ġthis ( list . elementAt ( index ) !!. to Long , Ġlist . elementAt ( index Ġ+ Ġ 1 ) !!. to Long , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . elementAt ( index Ġ+ Ġ 2 ) !!. to Long , Ġlist . elementAt ( index Ġ+ Ġ 3 ) !!. to Long ) ĊĊĠĠĠ Ġconstructor ( bytes : ĠByteBuffer , Ġindex : ĠInt Ġ= Ġbytes . pos , Ġone Byte One Long : ĠBoolean Ġ= Ġfalse ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index ]. L Ġelse Ġbytes . getLong ( index ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 1 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 2 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 3 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 3 )) ĊĊĠĠĠ Ġconstructor ( chars : ĠChar Buffer , Ġindex : ĠInt Ġ= Ġchars . pos ) Ġ: Ġthis ( chars [ index ]. L , Ġchars [ index Ġ+ Ġ 1 ]. L , Ġchars [ index Ġ+ Ġ 2 ]. L , Ġchars [ index Ġ+ Ġ 3 ]. L ) ĊĠĠĠ Ġconstructor ( shorts : ĠShort Buffer , Ġindex : ĠInt Ġ= Ġshort s . pos ) Ġ: Ġthis ( shorts [ index ], Ġshort s [ index Ġ+ Ġ 1 ], Ġshort s [ index Ġ+ Ġ 2 ], Ġshort s [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( ints : ĠInt Buffer , Ġindex : ĠInt Ġ= Ġints . pos ) Ġ: Ġthis ( ints [ index ], Ġints [ index Ġ+ Ġ 1 ], Ġints [ index Ġ+ Ġ 2 ], Ġints [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( long s : ĠLong Buffer , Ġindex : ĠInt Ġ= Ġlong s . pos ) Ġ: Ġthis ( long s [ index ], Ġlong s [ index Ġ+ Ġ 1 ], Ġlong s [ index Ġ+ Ġ 2 ], Ġlong s [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( float s : ĠFloat Buffer , Ġindex : ĠInt Ġ= Ġfloats . pos ) Ġ: Ġthis ( float s [ index ], Ġfloats [ index Ġ+ Ġ 1 ], Ġfloats [ index Ġ+ Ġ 2 ], Ġfloats [ index Ġ+ Ġ 3 ]) ĊĠĠĠ Ġconstructor ( double s : ĠDouble Buffer , Ġindex : ĠInt Ġ= Ġdouble s . pos ) Ġ: Ġthis ( double s [ index ], Ġdouble s [ index Ġ+ Ġ 1 ], Ġdouble s [ index Ġ+ Ġ 2 ], Ġdouble s [ index Ġ+ Ġ 3 ]) ĊĊĠĠĠ Ġconstructor ( block : Ġ( Int ) Ġ-> ĠLong ) Ġ: Ġthis ( block ( 0 ), Ġblock ( 1 ), Ġblock ( 2 ), Ġblock ( 3 )) Ċ // ĠĠĠ Ġconstructor ( ptr : ĠLong Ptr ) Ġ: Ġthis ( ptr [ 0 ], Ġptr [ 1 ], Ġptr [ 2 ], Ġptr [ 3 ]) Ġcl ash , Ġuse ĠComp anion :: from Pointer ĊĊĊĠĠĠ Ġfun Ġset ( bytes : ĠByteArray , Ġindex : ĠInt Ġ= Ġ 0 , Ġone Byte One Long : ĠBoolean Ġ= Ġfalse , Ġbig Endian : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index ]. L Ġelse Ġbytes . getLong ( index , Ġbig Endian ) ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 1 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES , Ġbig Endian ) ĊĠĠĠĠĠĠĠ Ġz Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 2 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 2 , Ġbig Endian ) ĊĠĠĠĠĠĠĠ Ġw Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 3 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 3 , Ġbig Endian ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( bytes : ĠByteBuffer , Ġindex : ĠInt Ġ= Ġbytes . pos , Ġone Byte One Long : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index ]. L Ġelse Ġbytes . getLong ( index ) ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 1 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES ) ĊĠĠĠĠĠĠĠ Ġz Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 2 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġw Ġ= Ġif Ġ( one Byte One Long ) Ġbytes [ index Ġ+ Ġ 3 ]. L Ġelse Ġbytes . getLong ( index Ġ+ ĠLong . BYTES Ġ* Ġ 3 ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġput ( x : ĠLong , Ġy : ĠLong , Ġz : ĠLong , Ġw : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġthis . z Ġ= Ġz ĊĠĠĠĠĠĠĠ Ġthis . w Ġ= Ġw ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( x : ĠLong , Ġy : ĠLong , Ġz : ĠLong , Ġw : ĠLong ): ĠVec 4 l Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġthis . z Ġ= Ġz ĊĠĠĠĠĠĠĠ Ġthis . w Ġ= Ġw ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput ( x : ĠNumber , Ġy : ĠNumber , Ġz : ĠNumber , Ġw : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx . L ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy . L ĊĠĠĠĠĠĠĠ Ġthis . z Ġ= Ġz . L ĊĠĠĠĠĠĠĠ Ġthis . w Ġ= Ġw . L ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġinvoke ( x : ĠNumber , Ġy : ĠNumber , Ġz : ĠNumber , Ġw : ĠNumber ): ĠVec 4 l Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx . L ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy . L ĊĠĠĠĠĠĠĠ Ġthis . z Ġ= Ġz . L ĊĠĠĠĠĠĠĠ Ġthis . w Ġ= Ġw . L ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto ( bytes : ĠByteArray , Ġindex : ĠInt ): ĠByteArray Ġ= Ġto ( bytes , Ġindex , Ġtrue ) ĊĠĠĠ Ġoverride Ġfun Ġto ( bytes : ĠByteArray , Ġindex : ĠInt , Ġbig Endian : ĠBoolean ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġbytes . put Long ( index , Ġx ) ĊĠĠĠĠĠĠĠ Ġbytes . put Long ( index Ġ+ ĠLong . BYTES , Ġy ) ĊĠĠĠĠĠĠĠ Ġbytes . put Long ( index Ġ+ ĠLong . BYTES Ġ* Ġ 2 , Ġz ) ĊĠĠĠĠĠĠĠ Ġbytes . put Long ( index Ġ+ ĠLong . BYTES Ġ* Ġ 3 , Ġw ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Long Array (): ĠLong Array Ġ= Ġto ( Long Array ( length ), Ġ 0 ) ĊĠĠĠ Ġin fix Ġfun Ġto ( long s : ĠLong Array ): ĠLong Array Ġ= Ġto ( long s , Ġ 0 ) ĊĠĠĠ Ġfun Ġto ( long s : ĠLong Array , Ġindex : ĠInt ): ĠLong Array Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . arraycopy ( array , Ġofs , Ġlong s , Ġindex , Ġlength ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlong s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto ( buf : ĠByteBuffer , Ġoffset : ĠInt ): ĠByteBuffer Ġ{ ĊĠĠĠĠĠĠĠ Ġbuf . put Long ( offset , Ġx ) ĊĠĠĠĠĠĠĠ Ġbuf . put Long ( offset Ġ+ ĠLong . BYTES , Ġy ) ĊĠĠĠĠĠĠĠ Ġbuf . put Long ( offset Ġ+ ĠLong . BYTES Ġ* Ġ 2 , Ġz ) ĊĠĠĠĠĠĠĠ Ġbuf . put Long ( offset Ġ+ ĠLong . BYTES Ġ* Ġ 3 , Ġw ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuf ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Long Buffer Stack (): ĠLong Buffer Ġ= Ġto ( Memory Stack . stack Get (). malloc Long ( length ), Ġ 0 ) ĊĠĠĠ Ġin fix Ġfun Ġto Long Buffer ( stack : ĠMemory Stack ): ĠLong Buffer Ġ= Ġto ( stack . malloc Long ( length ), Ġ 0 ) ĊĠĠĠ Ġfun Ġto Long Buffer (): ĠLong Buffer Ġ= Ġto ( Long Buffer ( length ), Ġ 0 ) ĊĠĠĠ Ġin fix Ġfun Ġto ( buf : ĠLong Buffer ): ĠLong Buffer Ġ= Ġto ( buf , Ġbuf . pos ) ĊĠĠĠ Ġfun Ġto ( buf : ĠLong Buffer , Ġindex : ĠInt ): ĠLong Buffer Ġ{ ĊĠĠĠĠĠĠĠ Ġbuf [ index ] Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġbuf [ index Ġ+ Ġ 1 ] Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġbuf [ index Ġ+ Ġ 2 ] Ġ= Ġz ĊĠĠĠĠĠĠĠ Ġbuf [ index Ġ+ Ġ 3 ] Ġ= Ġw ĊĠĠĠĠĠĠĠ Ġreturn Ġbuf ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġto ( ptr : ĠPtr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmem Put Long ( ptr , Ġx ) ĊĠĠĠĠĠĠĠ Ġmem Put Long ( ptr Ġ+ ĠLong . BYTES , Ġy ) ĊĠĠĠĠĠĠĠ Ġmem Put Long ( ptr Ġ+ ĠLong . BYTES Ġ* Ġ 2 , Ġz ) ĊĠĠĠĠĠĠĠ Ġmem Put Long ( ptr Ġ+ ĠLong . BYTES Ġ* Ġ 3 , Ġw ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ-- ĠComponent Ġaccesses Ġ-- ĊĊĠĠĠ Ġoperator Ġfun Ġset ( index : ĠInt , Ġvalue : ĠLong ) Ġ= Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġx Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠ 1 Ġ-> Ġy Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠ 2 Ġ-> Ġz Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠ 3 Ġ-> Ġw Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠArray Index OutOfBoundsException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġset ( index : ĠInt , Ġvalue : ĠNumber ) Ġ= Ġwhen Ġ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġx Ġ= Ġvalue . L ĊĠĠĠĠĠĠĠĠ 1 Ġ-> Ġy Ġ= Ġvalue . L ĊĠĠĠĠĠĠĠĠ 2 Ġ-> Ġz Ġ= Ġvalue . L ĊĠĠĠĠĠĠĠĠ 3 Ġ-> Ġw Ġ= Ġvalue . L ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠArray Index OutOfBoundsException () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġ-- ĠUnary Ġarithmetic Ġoperators Ġ-- ĊĊĠĠĠ Ġoperator Ġfun Ġunary Plus () Ġ= Ġthis ĊĊĠĠĠ Ġoperator Ġfun Ġunary Minus () Ġ= ĠVec 4 l (- x , Ġ- y , Ġ- z , Ġ- w ) ĊĊĠĠĠ Ġ// Ġ-- ĠIncrement Ġmain . and Ġdecrement Ġoperators Ġ-- ĊĊĠĠĠ Ġoperator Ġfun Ġinc ( res : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġ 1 , Ġ 1 , Ġ 1 , Ġ 1 ) ĊĠĠĠ Ġfun Ġinc Assign () Ġ= Ġplus ( this , Ġthis , Ġ 1 , Ġ 1 , Ġ 1 , Ġ 1 ) ĊĊĊĠĠĠ Ġoperator Ġfun Ġdec ( res : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġ 1 , Ġ 1 , Ġ 1 , Ġ 1 ) ĊĠĠĠ Ġfun Ġdec Assign () Ġ= Ġminus ( this , Ġthis , Ġ 1 , Ġ 1 , Ġ 1 , Ġ 1 ) ĊĊĊĠĠĠ Ġ// Ġ-- ĠSpecific Ġbinary Ġarithmetic Ġoperators Ġ-- ĊĊĠĠĠ Ġoperator Ġfun Ġplus ( b : ĠLong ) Ġ= Ġplus ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġoperator Ġfun Ġplus ( b : ĠVec 4 l ) Ġ= Ġplus ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġplus ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġfun Ġplus ( b : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġplus ( b : ĠVec 4 l , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġplus Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġplus ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġplus Assign ( b : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplus ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġplus Assign ( b : ĠVec 4 l ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplus ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġminus ( b : ĠLong ) Ġ= Ġminus ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġoperator Ġfun Ġminus ( b : ĠVec 4 l ) Ġ= Ġminus ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġminus ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġfun Ġminus ( b : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġminus ( b : ĠVec 4 l , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġminus Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġminus ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġminus Assign ( b : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġminus ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġminus Assign ( b : ĠVec 4 l ) Ġ{ ĊĠĠĠĠĠĠĠ Ġminus ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġtimes ( b : ĠLong ) Ġ= Ġtimes ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġoperator Ġfun Ġtimes ( b : ĠVec 4 l ) Ġ= Ġtimes ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġtimes ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġtimes ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġfun Ġtimes ( b : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġtimes ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġtimes ( b : ĠVec 4 l , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġtimes ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġtimes Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġtimes ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġtimes Assign ( b : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtimes ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġtimes Assign ( b : ĠVec 4 l ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtimes ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġdiv ( b : ĠLong ) Ġ= Ġdiv ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġoperator Ġfun Ġdiv ( b : ĠVec 4 l ) Ġ= Ġdiv ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġdiv ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġdiv ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġfun Ġdiv ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġdiv ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġdiv ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġdiv ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġdiv Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġdiv ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġdiv Assign ( b : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġdiv Assign ( b : ĠVec 4 l ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġrem ( b : ĠLong ) Ġ= Ġrem ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġoperator Ġfun Ġrem ( b : ĠVec 4 l ) Ġ= Ġrem ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġrem ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġrem ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġfun Ġrem ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġrem ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġrem ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġrem ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġrem Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġrem ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġrem Assign ( b : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrem ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġrem Assign ( b : ĠVec 4 l ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrem ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġ-- ĠGeneric Ġbinary Ġarithmetic Ġoperators Ġ-- ĊĊĠĠĠ Ġoperator Ġfun Ġplus ( b : ĠNumber ) Ġ= Ġplus ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġoperator Ġfun Ġplus ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġplus ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġplus ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġfun Ġplus ( b : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġplus ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġplus ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġplus Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġplus ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġplus Assign ( b : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplus ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġplus Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ{ ĊĠĠĠĠĠĠĠ Ġplus ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġminus ( b : ĠNumber ) Ġ= Ġminus ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġoperator Ġfun Ġminus ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġminus ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġminus ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġfun Ġminus ( b : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġminus ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġminus ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġminus Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġminus ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġminus Assign ( b : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġminus ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġminus Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ{ ĊĠĠĠĠĠĠĠ Ġminus ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġtimes ( b : ĠNumber ) Ġ= Ġtimes ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġoperator Ġfun Ġtimes ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġtimes ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġtimes ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġtimes ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġfun Ġtimes ( b : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġtimes ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġtimes ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġtimes ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġtimes Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġtimes ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġtimes Assign ( b : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtimes ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġtimes Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtimes ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġdiv ( b : ĠNumber ) Ġ= Ġdiv ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġoperator Ġfun Ġdiv ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġdiv ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġdiv ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġdiv ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġfun Ġdiv ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġdiv ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġdiv ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġdiv ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġdiv Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġdiv ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġdiv Assign ( b : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġdiv Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdiv ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoperator Ġfun Ġrem ( b : ĠNumber ) Ġ= Ġrem ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġoperator Ġfun Ġrem ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġrem ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġrem ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġrem ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġfun Ġrem ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġrem ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġrem ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġrem ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġrem Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġrem ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĠĠĠ Ġin fix Ġoperator Ġfun Ġrem Assign ( b : ĠNumber ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrem ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġoperator Ġfun Ġrem Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ{ ĊĠĠĠĠĠĠĠ Ġrem ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// Ġ-- ĠSpecific Ġbit wise Ġoperators Ġ-- ĊĊĠĠĠ Ġin fix Ġfun Ġand ( b : ĠLong ) Ġ= Ġand ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġand ( b : ĠVec 4 l ) Ġ= Ġand ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġin fix Ġfun Ġand Assign ( b : ĠLong ) Ġ= Ġand ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġand Assign ( b : ĠVec 4 l ) Ġ= Ġand ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġand ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġand ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġand ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġand ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġand ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġand ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĠĠĠ Ġfun Ġand Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġand ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġor ( b : ĠLong ) Ġ= Ġor ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġor ( b : ĠVec 4 l ) Ġ= Ġor ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġin fix Ġfun Ġor Assign ( b : ĠLong ) Ġ= Ġor ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġor Assign ( b : ĠVec 4 l ) Ġ= Ġor ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġor ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġor ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġor ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġor ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġor ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġor ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĠĠĠ Ġfun Ġor Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġor ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġxor ( b : ĠLong ) Ġ= Ġxor ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġxor ( b : ĠVec 4 l ) Ġ= Ġxor ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġin fix Ġfun Ġxor Assign ( b : ĠLong ) Ġ= Ġxor ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġxor Assign ( b : ĠVec 4 l ) Ġ= Ġxor ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġxor ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġxor ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġxor ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġxor ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġxor ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġxor ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĠĠĠ Ġfun Ġxor Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġxor ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġshl ( b : ĠLong ) Ġ= Ġshl ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġshl ( b : ĠVec 4 l ) Ġ= Ġshl ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġin fix Ġfun Ġshl Assign ( b : ĠLong ) Ġ= Ġshl ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġshl Assign ( b : ĠVec 4 l ) Ġ= Ġshl ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġshl ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġshl ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġshl ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġshl ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġshl ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġshl ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĠĠĠ Ġfun Ġshl Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġshl ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġshr ( b : ĠLong ) Ġ= Ġshr ( Vec 4 l (), Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġshr ( b : ĠVec 4 l ) Ġ= Ġshr ( Vec 4 l (), Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġin fix Ġfun Ġshr Assign ( b : ĠLong ) Ġ= Ġshr ( this , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġin fix Ġfun Ġshr Assign ( b : ĠVec 4 l ) Ġ= Ġshr ( this , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġshr ( b : ĠLong , Ġres : ĠVec 4 l ) Ġ= Ġshr ( res , Ġthis , Ġb , Ġb , Ġb , Ġb ) ĊĠĠĠ Ġfun Ġshr ( b : ĠVec 4 l , Ġres : ĠVec 4 l ) Ġ= Ġshr ( res , Ġthis , Ġb . x , Ġb . y , Ġb . z , Ġb . w ) ĊĊĠĠĠ Ġfun Ġshr ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġshr ( res , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĠĠĠ Ġfun Ġshr Assign ( b X : ĠLong , Ġb Y : ĠLong , Ġb Z : ĠLong , Ġb W : ĠLong ) Ġ= Ġshr ( this , Ġthis , Ġb X , Ġb Y , Ġb Z , Ġb W ) ĊĊĊĠĠĠ Ġfun Ġinv ( res : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġinv ( res , Ġthis ) ĊĠĠĠ Ġfun Ġinv Assign () Ġ= Ġinv ( this , Ġthis ) ĊĊĊĠĠĠ Ġ// Ġ-- ĠGeneric Ġbit wise Ġoperators Ġ-- ĊĊĠĠĠ Ġin fix Ġfun Ġand ( b : ĠNumber ) Ġ= Ġand ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġand ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġand ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġin fix Ġfun Ġand Assign ( b : ĠNumber ) Ġ= Ġand ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġand Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġand ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġand ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġand ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġand ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġand ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġand ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġand ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĠĠĠ Ġfun Ġand Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġand ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġor ( b : ĠNumber ) Ġ= Ġor ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġor ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġor ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġin fix Ġfun Ġor Assign ( b : ĠNumber ) Ġ= Ġor ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġor Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġor ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġor ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġor ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġor ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġor ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġor ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġor ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĠĠĠ Ġfun Ġor Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġor ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġxor ( b : ĠNumber ) Ġ= Ġxor ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġxor ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġxor ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġin fix Ġfun Ġxor Assign ( b : ĠNumber ) Ġ= Ġxor ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġxor Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġxor ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġxor ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġxor ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġxor ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġxor ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġxor ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġxor ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĠĠĠ Ġfun Ġxor Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġxor ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġshl ( b : ĠNumber ) Ġ= Ġshl ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġshl ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġshl ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġin fix Ġfun Ġshl Assign ( b : ĠNumber ) Ġ= Ġshl ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġshl Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġshl ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġshl ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġshl ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġshl ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġshl ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġshl ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġshl ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĠĠĠ Ġfun Ġshl Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġshl ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġshr ( b : ĠNumber ) Ġ= Ġshr ( Vec 4 l (), Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġshr ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġshr ( Vec 4 l (), Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġin fix Ġfun Ġshr Assign ( b : ĠNumber ) Ġ= Ġshr ( this , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġin fix Ġfun Ġshr Assign ( b : ĠVec 4 t < out ĠNumber >) Ġ= Ġshr ( this , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġshr ( b : ĠNumber , Ġres : ĠVec 4 l ) Ġ= Ġshr ( res , Ġthis , Ġb . L , Ġb . L , Ġb . L , Ġb . L ) ĊĠĠĠ Ġfun Ġshr ( b : ĠVec 4 t < out ĠNumber >, Ġres : ĠVec 4 l ) Ġ= Ġshr ( res , Ġthis , Ġb . x . L , Ġb . y . L , Ġb . z . L , Ġb . w . L ) ĊĊĠĠĠ Ġfun Ġshr ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber , Ġres : ĠVec 4 l Ġ= ĠVec 4 l ()) Ġ= Ġshr ( res , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĠĠĠ Ġfun Ġshr Assign ( b X : ĠNumber , Ġb Y : ĠNumber , Ġb Z : ĠNumber , Ġb W : ĠNumber ) Ġ= Ġshr ( this , Ġthis , Ġb X . L , Ġb Y . L , Ġb Z . L , Ġb W . L ) ĊĊĊĠĠĠ Ġin fix Ġfun Ġall LessThan ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ< ĠL Ġ&& Ġy Ġ< ĠL Ġ&& Ġz Ġ< ĠL Ġ&& Ġw Ġ< ĠL ĊĠĠĠ Ġin fix Ġfun Ġany LessThan ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ< ĠL Ġ|| Ġy Ġ< ĠL Ġ|| Ġz Ġ< ĠL Ġ|| Ġw Ġ< ĠL ĊĠĠĠ Ġin fix Ġfun Ġless Than ( L : ĠLong ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ< ĠL Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall LessThan Equal ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ<= ĠL Ġ&& Ġy Ġ<= ĠL Ġ&& Ġz Ġ<= ĠL Ġ&& Ġw Ġ<= ĠL ĊĠĠĠ Ġin fix Ġfun Ġany LessThan Equal ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ<= ĠL Ġ|| Ġy Ġ<= ĠL Ġ|| Ġz Ġ<= ĠL Ġ|| Ġw Ġ<= ĠL ĊĠĠĠ Ġin fix Ġfun Ġless Than Equal ( L : ĠLong ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ<= ĠL Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall Equal ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ== ĠL Ġ&& Ġy Ġ== ĠL Ġ&& Ġz Ġ== ĠL Ġ&& Ġw Ġ== ĠL ĊĠĠĠ Ġin fix Ġfun Ġany Equal ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ== ĠL Ġ|| Ġy Ġ== ĠL Ġ|| Ġz Ġ== ĠL Ġ|| Ġw Ġ== ĠL ĊĠĠĠ Ġin fix Ġfun Ġequal ( L : ĠLong ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ== ĠL Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall NotEqual ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ!= ĠL Ġ&& Ġy Ġ!= ĠL Ġ&& Ġz Ġ!= ĠL Ġ&& Ġw Ġ!= ĠL ĊĠĠĠ Ġin fix Ġfun Ġany NotEqual ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ!= ĠL Ġ|| Ġy Ġ!= ĠL Ġ|| Ġz Ġ!= ĠL Ġ|| Ġw Ġ!= ĠL ĊĠĠĠ Ġin fix Ġfun Ġnot Equal ( L : ĠLong ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ!= ĠL Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall GreaterThan ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ> ĠL Ġ&& Ġy Ġ> ĠL Ġ&& Ġz Ġ> ĠL Ġ&& Ġw Ġ> ĠL ĊĠĠĠ Ġin fix Ġfun Ġany GreaterThan ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ> ĠL Ġ|| Ġy Ġ> ĠL Ġ|| Ġz Ġ> ĠL Ġ|| Ġw Ġ> ĠL ĊĠĠĠ Ġin fix Ġfun Ġgreater Than ( L : ĠLong ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ> ĠL Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall GreaterThan Equal ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ>= ĠL Ġ&& Ġy Ġ>= ĠL Ġ&& Ġz Ġ>= ĠL Ġ&& Ġw Ġ>= ĠL ĊĠĠĠ Ġin fix Ġfun Ġany GreaterThan Equal ( L : ĠLong ): ĠBoolean Ġ= Ġx Ġ>= ĠL Ġ|| Ġy Ġ>= ĠL Ġ|| Ġz Ġ>= ĠL Ġ|| Ġw Ġ>= ĠL ĊĠĠĠ Ġin fix Ġfun Ġgreater Than Equal ( L : ĠLong ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ>= ĠL Ġ} ĊĊĊĠĠĠ Ġin fix Ġfun Ġall LessThan ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ< Ġv . x Ġ&& Ġy Ġ< Ġv . y Ġ&& Ġz Ġ< Ġv . z Ġ&& Ġw Ġ< Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġany LessThan ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ< Ġv . x Ġ|| Ġy Ġ< Ġv . y Ġ|| Ġz Ġ< Ġv . z Ġ|| Ġw Ġ< Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġless Than ( v : ĠVec 4 l ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ< Ġv [ it ] Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall LessThan Equal ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ<= Ġv . x Ġ&& Ġy Ġ<= Ġv . y Ġ&& Ġz Ġ<= Ġv . z Ġ&& Ġw Ġ<= Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġany LessThan Equal ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ<= Ġv . x Ġ|| Ġy Ġ<= Ġv . y Ġ|| Ġz Ġ<= Ġv . z Ġ|| Ġw Ġ<= Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġless Than Equal ( v : ĠVec 4 l ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ<= Ġv [ it ] Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall Equal ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ== Ġv . x Ġ&& Ġy Ġ== Ġv . y Ġ&& Ġz Ġ== Ġv . z Ġ&& Ġw Ġ== Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġany Equal ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ== Ġv . x Ġ|| Ġy Ġ== Ġv . y Ġ|| Ġz Ġ== Ġv . z Ġ|| Ġw Ġ== Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġequal ( v : ĠVec 4 l ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ== Ġv [ it ] Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall NotEqual ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ!= Ġv . x Ġ&& Ġy Ġ!= Ġv . y Ġ&& Ġz Ġ!= Ġv . z Ġ&& Ġw Ġ!= Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġany NotEqual ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ!= Ġv . x Ġ|| Ġy Ġ!= Ġv . y Ġ|| Ġz Ġ!= Ġv . z Ġ|| Ġw Ġ!= Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġnot Equal ( v : ĠVec 4 l ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ!= Ġv [ it ] Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall GreaterThan ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ> Ġv . x Ġ&& Ġy Ġ> Ġv . y Ġ&& Ġz Ġ> Ġv . z Ġ&& Ġw Ġ> Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġany GreaterThan ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ> Ġv . x Ġ|| Ġy Ġ> Ġv . y Ġ|| Ġz Ġ> Ġv . z Ġ|| Ġw Ġ> Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġgreater Than ( v : ĠVec 4 l ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ> Ġv [ it ] Ġ} ĊĊĠĠĠ Ġin fix Ġfun Ġall GreaterThan Equal ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ>= Ġv . x Ġ&& Ġy Ġ>= Ġv . y Ġ&& Ġz Ġ>= Ġv . z Ġ&& Ġw Ġ>= Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġany GreaterThan Equal ( v : ĠVec 4 l ): ĠBoolean Ġ= Ġx Ġ>= Ġv . x Ġ|| Ġy Ġ>= Ġv . y Ġ|| Ġz Ġ>= Ġv . z Ġ|| Ġw Ġ>= Ġv . w ĊĠĠĠ Ġin fix Ġfun Ġgreater Than Equal ( v : ĠVec 4 l ): ĠVec 4 bool Ġ= ĠVec 4 bool Ġ{ Ġget ( it ) Ġ>= Ġv [ it ] Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ: Ġvec 4 l _ operators Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġlength Ġ= ĠVec 4 t . length ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġlength Ġ* ĠLong . BYTES ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Pointer ( ptr : ĠPtr ) Ġ= ĠVec 4 l ( mem Get Long ( ptr ), Ġmem Get Long ( ptr Ġ+ ĠLong . BYTES ), Ġmem Get Long ( ptr Ġ+ ĠLong . BYTES Ġ* Ġ 2 ), Ġmem Get Long ( ptr Ġ+ ĠLong . BYTES Ġ* Ġ 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsize () Ġ= ĠVec 4 l . size ĊĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?) Ġ= Ġother Ġis ĠVec 4 l Ġ&& Ġthis [ 0 ] Ġ== Ġother [ 0 ] Ġ&& Ġthis [ 1 ] Ġ== Ġother [ 1 ] Ġ&& Ġthis [ 2 ] Ġ== Ġother [ 2 ] Ġ&& Ġthis [ 3 ] Ġ== Ġother [ 3 ] ĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= Ġ 3 1 Ġ* Ġ( 3 1 Ġ* Ġ( 3 1 Ġ* Ġx . hashCode () Ġ+ Ġy . hashCode ()) Ġ+ Ġz . hashCode ()) Ġ+ Ġw . hashCode () ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġprint ( name : ĠString Ġ= Ġ"", Ġstream : ĠPrint Stream Ġ= ĠSystem . out ) Ġ= Ġstream . print ("$ name $ this ") ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġprintln ( name : ĠString Ġ= Ġ"", Ġstream : ĠPrint Stream Ġ= ĠSystem . out ) Ġ= Ġstream . println ("$ name $ this ") ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" ($ x , Ġ$ y , Ġ$ z , Ġ$ w )" Ċ }