package Ġspace . k science . k math . benchmarks Ċ Ċ import Ġkotlinx . benchmark . Benchmark Ċ import Ġorg . openjdk . j mh . annotations . Scope Ċ import Ġorg . openjdk . j mh . annotations . State Ċ import Ġspace . k science . k math . commons . linear . C MM at rix Context Ċ import Ġspace . k science . k math . ej ml . Ej ml Matrix Context Ċ import Ġspace . k science . k math . linear . Buffer Matrix Context Ċ import Ġspace . k science . k math . linear . Matrix Ċ import Ġspace . k science . k math . linear . Real Matrix Context Ċ import Ġspace . k science . k math . operations . Real Field Ċ import Ġspace . k science . k math . operations . invoke Ċ import Ġspace . k science . k math . structures . Buffer Ċ import Ġkotlin . random . Random Ċ Ċ @ State ( Scope . Benchmark ) Ċ internal Ġclass ĠDot Benchmark Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom ( 1 2 2 2 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġdim Ġ= Ġ 1 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġ// creating Ġinvert ible Ġmatrix ĊĠĠĠĠĠĠĠ Ġval Ġmatrix 1 Ġ= ĠMatrix . real ( dim , Ġdim ) Ġ{ Ġi , Ġj Ġ-> Ġif Ġ( i Ġ<= Ġj ) Ġrandom . next Double () Ġelse Ġ 0 . 0 Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmatrix 2 Ġ= ĠMatrix . real ( dim , Ġdim ) Ġ{ Ġi , Ġj Ġ-> Ġif Ġ( i Ġ<= Ġj ) Ġrandom . next Double () Ġelse Ġ 0 . 0 Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcm Matrix 1 Ġ= ĠC MM at rix Context Ġ{ Ġmatrix 1 . to CM () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcm Matrix 2 Ġ= ĠC MM at rix Context Ġ{ Ġmatrix 2 . to CM () Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġej ml Matrix 1 Ġ= ĠE j ml Matrix Context Ġ{ Ġmatrix 1 . to Ej ml () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġej ml Matrix 2 Ġ= ĠE j ml Matrix Context Ġ{ Ġmatrix 2 . to Ej ml () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġcm Dot () Ġ{ ĊĠĠĠĠĠĠĠ ĠC MM at rix Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcm Matrix 1 Ġdot Ġcm Matrix 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġej ml Dot () Ġ{ ĊĠĠĠĠĠĠĠ ĠE j ml Matrix Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġej ml Matrix 1 Ġdot Ġej ml Matrix 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġej ml Dot With Conversion () Ġ{ ĊĠĠĠĠĠĠĠ ĠE j ml Matrix Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix 1 Ġdot Ġmatrix 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġbuffered Dot () Ġ{ ĊĠĠĠĠĠĠĠ ĠBuffer Matrix Context ( Real Field , ĠBuffer . Companion :: real ). invoke Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix 1 Ġdot Ġmatrix 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Benchmark ĊĠĠĠ Ġfun Ġreal Dot () Ġ{ ĊĠĠĠĠĠĠĠ ĠReal Matrix Context Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix 1 Ġdot Ġmatrix 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ