package Ġglm _ Ċ Ċ import Ġglm _. vec 1 . Vec 1 Ċ import Ġglm _. vec 1 . Vec 1 d Ċ import Ġglm _. vec 2 . Vec 2 Ċ import Ġglm _. vec 2 . Vec 2 i Ċ import Ġglm _. vec 3 . Vec 3 Ċ import Ġglm _. vec 3 . Vec 3 i Ċ import Ġglm _. vec 4 .* Ċ import Ġglm _. vec 4 . operators . div Ċ import Ġglm _. vec 4 . operators . minus Ċ import Ġglm _. vec 4 . operators . plus Ċ import Ġglm _. vec 4 . operators . times Ċ import Ġglm _. vec 4 . sw izzle .* Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . core . spec . style . String Spec Ċ import Ġk ool . BYTES Ċ Ċ class Ġcore Vec 4 Ġ: ĠString Spec () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ" ctor " ĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( A ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ if ĠGL M _ HAS _ TR IV IAL _ QU ER IES Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĉ Error Ġ+= Ġstd :: is _ t riv ially _ default _ construct ible < glm :: vec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĉ Error Ġ+= Ġstd :: is _ t riv ially _ copy _ assign able < glm :: vec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġstd :: is _ t riv ially _ copy able < glm :: vec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġstd :: is _ t riv ially _ copy able < glm :: dvec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġstd :: is _ t riv ially _ copy able < glm :: ivec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġstd :: is _ t riv ially _ copy able < glm :: uvec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġstd :: is _ copy _ construct ible < glm :: vec 4 >:: value Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ endif Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# if ĠGL M _ HAS _ INITIAL IZER _ LIST S Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 Ġa { Ġ 0 , Ġ 1 , Ġ 2 , Ġ 3 Ġ}; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 4 > Ġv Ġ= Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ 0 , Ġ 1 , Ġ 2 , Ġ 3 }, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ 4 , Ġ 5 , Ġ 6 , Ġ 7 }, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ 8 , Ġ 9 , Ġ 0 , Ġ 1 }}; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: dvec 4 Ġa { Ġ 0 , Ġ 1 , Ġ 2 , Ġ 3 Ġ}; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: dvec 4 > Ġv Ġ= Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ 0 , Ġ 1 , Ġ 2 , Ġ 3 }, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ 4 , Ġ 5 , Ġ 6 , Ġ 7 }, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ 8 , Ġ 9 , Ġ 0 , Ġ 1 }}; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# endif ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠA . xyz w ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 ( A . x , ĠA . y zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠVec 4 ( A . x , ĠA . y zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠVec 4 ( A . xyz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠVec 4 ( A . xyz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= ĠVec 4 ( A . xy , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= ĠVec 4 ( A . xy , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠK Ġ= ĠVec 4 ( A . x , ĠA . y , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠL Ġ= ĠVec 4 ( A . x , ĠA . yz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠM Ġ= ĠVec 4 ( A . xy , ĠA . z , ĠA . w ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠF ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠJ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# endif // ĠGL M _ HAS _ UN RE STRICT ED _ UNION S Ġ&& Ġdefined ( GL M _ FORCE _ SW IZ Z LE ) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ if ĠGL M _ HAS _ CONST EXPR Ġ&& ĠGL M _ ARCH Ġ== ĠGL M _ ARCH _ PURE Ġ&& Ġ!( GL M _ COMPILER Ġ& ĠGL M _ COMPILER _ VC ) Ġ// ĠVisual ĠStudio Ġbug ? Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstexpr Ġglm :: ivec 4 Ġv ( 1 ); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġv . x Ġ== Ġ 1 Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġv . y Ġ== Ġ 1 Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġv . z Ġ== Ġ 1 Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġv . w Ġ== Ġ 1 Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ endif Ċ // ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ( 1 , Ġ 1 , Ġ 1 , Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( Vec 2 i ( 1 , Ġ 2 ), Ġ 3 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( 1 , ĠVec 2 i ( 2 , Ġ 3 ), Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( 1 , Ġ 2 , ĠVec 2 i ( 3 , Ġ 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( Vec 3 i ( 1 , Ġ 2 , Ġ 3 ), Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( 1 , ĠVec 3 i ( 2 , Ġ 3 , Ġ 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( Vec 2 i ( 1 , Ġ 2 ), ĠVec 2 i ( 3 , Ġ 4 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 i ( Vec 4 i ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe ĠVec 4 i ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠR Ġ= ĠVec 1 ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠS Ġ= ĠVec 1 ( 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠT Ġ= ĠVec 1 ( 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠU Ġ= ĠVec 1 ( 4 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠO Ġ= ĠVec 4 ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( R ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠB ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 ( R , ĠS , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 ( R , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 ( 1 f , ĠS , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠVec 4 ( R , ĠS , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠVec 4 ( 1 f , Ġ 2 f , ĠT , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠVec 4 ( R , Ġ 2 f , ĠT , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= ĠVec 4 ( 1 f , ĠS , ĠT , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= ĠVec 4 ( R , ĠS , ĠT , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠK Ġ= ĠVec 4 ( R , Ġ 2 f , Ġ 3 f , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠL Ġ= ĠVec 4 ( 1 f , ĠS , Ġ 3 f , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠM Ġ= ĠVec 4 ( R , ĠS , Ġ 3 f , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠN Ġ= ĠVec 4 ( 1 f , Ġ 2 f , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠP Ġ= ĠVec 4 ( R , Ġ 2 f , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠQ Ġ= ĠVec 4 ( 1 f , ĠS , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQ Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠV Ġ= ĠVec 4 ( R , ĠS , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV Ġshould Equal ĠO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠR Ġ= ĠVec 1 ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠS Ġ= ĠVec 1 d ( 2 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠT Ġ= ĠVec 1 ( 3 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠU Ġ= ĠVec 1 d ( 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠO Ġ= ĠVec 4 ( 1 f , Ġ 2 . 0 , Ġ 3 f , Ġ 4 . 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( R ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ( 1 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠB ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 ( R , ĠS , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 ( R , Ġ 2 f , Ġ 3 . 0 , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 ( 1 . 0 , ĠS , Ġ 3 f , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠVec 4 ( R , ĠS , Ġ 3 . 0 , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠVec 4 ( 1 f , Ġ 2 . 0 , ĠT , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠVec 4 ( R , Ġ 2 . 0 , ĠT , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= ĠVec 4 ( 1 . 0 , ĠS , ĠT , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= ĠVec 4 ( R , ĠS , ĠT , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠK Ġ= ĠVec 4 ( R , Ġ 2 f , Ġ 3 . 0 , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠL Ġ= ĠVec 4 ( 1 f , ĠS , Ġ 3 . 0 , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠM Ġ= ĠVec 4 ( R , ĠS , Ġ 3 . 0 , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠN Ġ= ĠVec 4 ( 1 f , Ġ 2 . 0 , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠP Ġ= ĠVec 4 ( R , Ġ 2 . 0 , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠQ Ġ= ĠVec 4 ( 1 f , ĠS , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQ Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠV Ġ= ĠVec 4 ( R , ĠS , ĠT , ĠU ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV Ġshould Equal ĠO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 0 Ġ= ĠVec 1 ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 1 Ġ= ĠVec 1 ( 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 2 Ġ= ĠVec 1 ( 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 3 Ġ= ĠVec 1 ( 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 2 _ 0 Ġ= ĠVec 2 ( 1 f , Ġ 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 2 _ 1 Ġ= ĠVec 2 ( 2 f , Ġ 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 2 _ 2 Ġ= ĠVec 2 ( 3 f , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 3 _ 0 Ġ= ĠVec 3 ( 1 f , Ġ 2 f , Ġ 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 3 _ 1 Ġ= ĠVec 3 ( 2 f , Ġ 3 f , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠO Ġ= ĠVec 4 ( 1 f , Ġ 2 . 0 , Ġ 3 f , Ġ 4 . 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( v 1 _ 0 , Ġv 1 _ 1 , Ġv 2 _ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ( 1 f , Ġ 2 f , Ġv 2 _ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 ( v 1 _ 0 , Ġ 2 f , Ġv 2 _ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 ( 1 f , Ġv 1 _ 1 , Ġv 2 _ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 ( v 2 _ 0 , Ġv 1 _ 2 , Ġv 1 _ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠVec 4 ( v 2 _ 0 , Ġ 3 . 0 , Ġv 1 _ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠVec 4 ( v 2 _ 0 , Ġv 1 _ 2 , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠVec 4 ( v 2 _ 0 , Ġ 3 f , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Ġshould Equal ĠO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 0 Ġ= ĠVec 1 ( 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 1 Ġ= ĠVec 1 ( 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 2 Ġ= ĠVec 1 ( 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 1 _ 3 Ġ= ĠVec 1 ( 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 2 Ġ= ĠVec 2 ( 2 f , Ġ 3 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 3 _ 0 Ġ= ĠVec 3 ( 1 f , Ġ 2 f , Ġ 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 3 _ 1 Ġ= ĠVec 3 ( 2 f , Ġ 3 f , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠO Ġ= ĠVec 4 ( 1 f , Ġ 2 . 0 , Ġ 3 f , Ġ 4 . 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( v 1 _ 0 , Ġv 2 , Ġv 1 _ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ( v 1 _ 0 , Ġv 2 , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 ( 1 . 0 , Ġv 2 , Ġv 1 _ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 ( 1 f , Ġv 2 , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD Ġshould Equal ĠO ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 ( 1 . 0 , Ġv 2 , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Ġshould Equal ĠO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" b vec 4 _ ctor " ĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 bool ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 bool ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 bool ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠA Ġand ĠB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠA Ġand ĠC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠA Ġor ĠC ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠD ĠshouldBe ĠVec 4 bool ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE ĠshouldBe ĠVec 4 bool ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF ĠshouldBe ĠVec 4 bool ( true ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠA Ġ== ĠC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠA Ġ!= ĠC ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" vec 4 Ġoperators " Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠR Ġ= ĠA Ġ!= ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠS Ġ= ĠA Ġ== ĠB ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( S Ġ&& Ġ! R ) ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ( 4 f , Ġ 5 f , Ġ 6 f , Ġ 7 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠA Ġ+ ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC Ġshould Equal ĠVec 4 ( 5 , Ġ 7 , Ġ 9 , Ġ 1 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠB Ġ- ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD Ġshould Equal ĠVec 4 ( 3 , Ġ 3 , Ġ 3 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠA Ġ* ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE Ġshould Equal ĠVec 4 ( 4 , Ġ 1 0 , Ġ 1 8 , Ġ 2 8 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠB Ġ/ ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF Ġshould Equal ĠVec 4 ( 4 , Ġ 2 . 5 , Ġ 2 , Ġ 7 f Ġ/ Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠA Ġ+ Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG Ġshould Equal ĠVec 4 ( 2 , Ġ 3 , Ġ 4 , Ġ 5 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠB Ġ- Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Ġshould Equal ĠVec 4 ( 3 , Ġ 4 , Ġ 5 , Ġ 6 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= ĠA Ġ* Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI Ġshould Equal ĠVec 4 ( 2 , Ġ 4 , Ġ 6 , Ġ 8 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= ĠB Ġ/ Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ Ġshould Equal ĠVec 4 ( 2 , Ġ 2 . 5 , Ġ 3 , Ġ 3 . 5 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠK Ġ= Ġ 1 f Ġ+ ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Ġshould Equal ĠVec 4 ( 2 , Ġ 3 , Ġ 4 , Ġ 5 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠL Ġ= Ġ 1 f Ġ- ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL Ġshould Equal ĠVec 4 (- 3 , Ġ- 4 , Ġ- 5 , Ġ- 6 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠM Ġ= Ġ 2 f Ġ* ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM Ġshould Equal ĠVec 4 ( 2 , Ġ 4 , Ġ 6 , Ġ 8 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠN Ġ= Ġ 2 f Ġ/ ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Ġshould Equal ĠVec 4 ( 0 . 5 , Ġ 2 . 0 Ġ/ Ġ 5 . 0 , Ġ 2 . 0 Ġ/ Ġ 6 . 0 , Ġ 2 . 0 Ġ/ Ġ 7 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 4 f , Ġ 5 f , Ġ 6 f , Ġ 7 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġ+= ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠVec 4 i ( 5 , Ġ 7 , Ġ 9 , Ġ 1 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġ+= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠVec 4 i ( 6 , Ġ 8 , Ġ 1 0 , Ġ 1 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 4 f , Ġ 5 f , Ġ 6 f , Ġ 7 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ-= ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 3 , Ġ 3 , Ġ 3 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ-= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 2 , Ġ 2 , Ġ 2 , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 4 f , Ġ 5 f , Ġ 6 f , Ġ 7 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġ*= ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠVec 4 i ( 4 , Ġ 1 0 , Ġ 1 8 , Ġ 2 8 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġ*= Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠVec 4 i ( 8 , Ġ 2 0 , Ġ 3 6 , Ġ 5 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 2 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 4 f , Ġ 4 f , Ġ 8 f , Ġ 8 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ/= ĠA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 4 , Ġ 2 , Ġ 4 , Ġ 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ/= Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 2 , Ġ 1 , Ġ 2 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ/= ĠB . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= Ġ- A ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i (- 1 f , Ġ- 2 f , Ġ- 3 f , Ġ- 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= Ġ-- A ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 0 f , Ġ 1 f , Ġ 2 f , Ġ 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠA -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠVec 4 i ( 0 f , Ġ 1 f , Ġ 2 f , Ġ 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= Ġ++ A ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 2 f , Ġ 3 f , Ġ 4 f , Ġ 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠA ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ĠshouldBe ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠVec 4 i ( 2 f , Ġ 3 f , Ġ 4 f , Ġ 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" vec 4 Ġequal " Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ui ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 ui ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( A Ġ== ĠB ) ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( A Ġ!= ĠB ) ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( A Ġ== ĠB ) ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( A Ġ!= ĠB ) ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" vec 4 Ġsize " Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 . size ĠshouldBe Ġ 4 Ġ* ĠFloat . BYTES ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 d . size ĠshouldBe Ġ 4 Ġ* ĠDouble . BYTES ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 . length ĠshouldBe Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 d . length ĠshouldBe Ġ 4 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" sw izzle Ġpartial " Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ if ĠGL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ OPERATOR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠVec 4 ( A . xy , ĠA . zw ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠVec 4 ( A . xy , Ġ 3 f , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠVec 4 ( 1 f , ĠA . yz , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠVec 4 ( 1 f , Ġ 2 f , ĠA . zw ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠVec 4 ( A . xyz , Ġ 4 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠVec 4 ( 1 . 0 f , ĠA . y zw ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ endif // GL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ OPERATOR Ġ|| ĠGL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ FUNCTION ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" sw izzle " Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ if ĠGL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ OPERATOR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 i ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠVec 4 i ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 i ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 i ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 i ( A . x , ĠA . y zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠVec 4 i ( A . x , ĠA . y zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠVec 4 i ( A . xyz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠVec 4 i ( A . xyz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= ĠVec 4 i ( A . xy , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= ĠVec 4 i ( A . xy , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠK Ġ= ĠVec 4 i ( A . x , ĠA . y , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠL Ġ= ĠVec 4 i ( A . x , ĠA . yz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠM Ġ= ĠVec 4 i ( A . xy , ĠA . z , ĠA . w ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠF ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠJ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA ĠshouldBe ĠM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ endif // GL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ OPERATOR Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ if ĠGL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ OPERATOR Ġ|| ĠGL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ FUNCTION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠA Ġ= ĠVec 4 ( 1 f , Ġ 2 f , Ġ 3 f , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠB Ġ= ĠA . xyz w ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠC Ġ= ĠVec 4 ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠD Ġ= ĠVec 4 ( A . xyz w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠE Ġ= ĠVec 4 ( A . x , ĠA . y zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠF Ġ= ĠVec 4 ( A . x , ĠA . y zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠG Ġ= ĠVec 4 ( A . xyz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠH Ġ= ĠVec 4 ( A . xyz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠI Ġ= ĠVec 4 ( A . xy , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠJ Ġ= ĠVec 4 ( A . xy , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠK Ġ= ĠVec 4 ( A . x , ĠA . y , ĠA . zw ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠL Ġ= ĠVec 4 ( A . x , ĠA . yz , ĠA . w ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠM Ġ= ĠVec 4 ( A . xy , ĠA . z , ĠA . w ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠF ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠJ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġshould Equal ĠM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĉ endif // GL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ OPERATOR Ġ|| ĠGL M _ SW IZ Z LE Ġ== ĠGL M _ SW IZ Z LE _ FUNCTION ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" operator Ġincrement " ĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 0 Ġ= ĠVec 4 i ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġv 1 Ġ= ĠVec 4 i ( v 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġv 2 Ġ= ĠVec 4 i ( v 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 3 Ġ= Ġ++ v 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv 4 Ġ= Ġv 2 ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 0 ĠshouldBe Ġv 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 1 ĠshouldBe Ġv 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 1 ĠshouldBe Ġv 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi 0 Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi 1 Ġ= Ġi 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi 2 Ġ= Ġi 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi 3 Ġ= Ġ++ i 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi 4 Ġ= Ġi 2 ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġi 0 ĠshouldBe Ġi 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi 1 ĠshouldBe Ġi 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi 1 ĠshouldBe Ġi 3 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġstruct ĠA oS Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 ĠA ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 3 ĠB ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 3 ĠC ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 2 ĠD ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}; Ċ // Ċ // ĠĠĠĠĠĠĠ Ġstatic Ġint Ġtest _ vec 4 _ perf _ Ao S ( std :: size _ t ĠSize ) Ċ // ĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġint ĠError ( 0 ); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < Ao S > ĠIn ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < Ao S > ĠOut ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIn . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠOut . resize ( Size ); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: clock _ t ĠStart Time Ġ= Ġstd :: clock (); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( std :: size _ t Ġi Ġ= Ġ 0 ; Ġi Ġ< ĠIn . size (); Ġ++ i ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠOut [ i ] Ġ= ĠIn [ i ]; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: clock _ t ĠEnd Time Ġ= Ġstd :: clock (); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: printf (" Ao S : Ġ% d \ n ", Ġstatic _ cast < int >( EndTime Ġ- ĠStart Time )); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError ; Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġstatic Ġint Ġtest _ vec 4 _ perf _ So A ( std :: size _ t ĠSize ) Ċ // ĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġint ĠError ( 0 ); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 4 > ĠIn A ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 3 > ĠIn B ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 3 > ĠIn C ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 2 > ĠIn D ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 4 > ĠOut A ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 3 > ĠOut B ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 3 > ĠOut C ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: vector < glm :: vec 2 > ĠOut D ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIn A . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIn B . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIn C . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIn D . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠOut A . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠOut B . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠOut C . resize ( Size ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠOut D . resize ( Size ); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: clock _ t ĠStart Time Ġ= Ġstd :: clock (); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( std :: size _ t Ġi Ġ= Ġ 0 ; Ġi Ġ< ĠIn A . size (); Ġ++ i ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut A [ i ] Ġ= ĠIn A [ i ]; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut B [ i ] Ġ= ĠIn B [ i ]; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut C [ i ] Ġ= ĠIn C [ i ]; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOut D [ i ] Ġ= ĠIn D [ i ]; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: clock _ t ĠEnd Time Ġ= Ġstd :: clock (); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstd :: printf (" So A : Ġ% d \ n ", Ġstatic _ cast < int >( EndTime Ġ- ĠStart Time )); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError ; Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġnamespace Ġheap Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstruct ĠA Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Ġf ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstruct ĠB Ġ: Ġpublic ĠA Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Ġg ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 Ġv ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Ġint Ġtest () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ĠError Ġ= Ġ 0 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA * Ġp Ġ= Ġnew ĠB ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp -> f Ġ= Ġ 0 . 0 f ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Ġp ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġsizeof ( B ) Ġ== Ġsizeof ( glm :: vec 4 ) Ġ+ Ġsizeof ( float ) Ġ* Ġ 2 Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}// namespace Ġheap Ċ // Ċ // ĠĠĠĠĠĠĠ Ġstatic Ġint Ġtest _ vec 4 _ simd () Ċ // ĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġint ĠError Ġ= Ġ 0 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 Ġconst Ġa ( std :: clock (), Ġstd :: clock (), Ġstd :: clock (), Ġstd :: clock ()); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 Ġconst Ġb ( std :: clock (), Ġstd :: clock (), Ġstd :: clock (), Ġstd :: clock ()); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 Ġconst Ġc ( b Ġ* Ġa ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġglm :: vec 4 Ġconst Ġd ( a Ġ+ Ġc ); Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġglm :: all ( glm :: greater Than Equal ( d , Ġglm :: vec 4 ( 0 ))) Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError ; Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġstatic Ġint Ġtest _ inheritance () Ċ // ĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstruct Ġmy _ vec 4 Ġ: Ġpublic Ġglm :: vec 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy _ vec 4 () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġglm :: vec 4 ( 7 6 . f , Ġ 7 5 . f , Ġ 7 4 . f , Ġ 7 3 . f ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġmember ( 8 2 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ{} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġmember ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġint ĠError Ġ= Ġ 0 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmy _ vec 4 Ġv ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġv . member Ġ== Ġ 8 2 Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġglm :: epsilon Equal ( v . x , Ġ 7 6 . f , Ġglm :: epsilon < float >()) Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġglm :: epsilon Equal ( v . y , Ġ 7 5 . f , Ġglm :: epsilon < float >()) Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġglm :: epsilon Equal ( v . z , Ġ 7 4 . f , Ġglm :: epsilon < float >()) Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠError Ġ+= Ġglm :: epsilon Equal ( v . w , Ġ 7 3 . f , Ġglm :: epsilon < float >()) Ġ? Ġ 0 Ġ: Ġ 1 ; Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠError ; Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" to Color " Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 Ġ{ Ġit . f Ġ}. to Color ( normalized Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 ( 0 f , Ġ 0 . 5 f , Ġ 1 f , Ġ 1 f ). to Color () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 ( 1 f ). to Color () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġfloat ArrayOf ( 0 . 2 f , Ġ 0 . 2 f , Ġ 0 . 2 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVec 4 ( c , Ġ 0 ). to Color () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }