@ file : K oma Jvm Name (" Sym metry Validation ") Ċ Ċ package Ġk oma . util . validation Ċ Ċ import Ġk oma .* Ċ import Ġk oma . extensions .* Ċ import Ġk oma . internal . K oma Jvm Name Ċ Ċ fun ĠValidation Context . symmetric ( precision : ĠDouble Ġ= Ġ 1 e - 5 ): ĠValidation Context Ġ{ ĊĠĠĠ Ġif Ġ(! validate Mat rices ) Ġreturn Ġthis ĊĠĠĠ Ġval Ġrows Ġ= Ġcurrent Matrix . num Rows () ĊĠĠĠ Ġval Ġcols Ġ= Ġcurrent Matrix . num Cols () ĊĠĠĠ Ġif Ġ( rows Ġ!= Ġcols ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ"${ current Matrix Name } Ġmust Ġbe Ġsymmetric , Ġbut Ġhas Ġdimensions Ġ${ rows } x ${ cols }" ĊĠĠĠĠĠĠĠ Ġthrow ĠIndex OutOfBoundsException ( msg ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( row Ġin Ġ 0 . until ( rows )) ĊĠĠĠĠĠĠĠ Ġfor Ġ( col Ġin Ġrow . until ( cols )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abs ( current Matrix [ row , Ġcol ] Ġ- Ġcurrent Matrix [ col , Ġrow ]) Ġ> Ġprecision ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ"${ current Matrix Name } Ġmust Ġbe Ġsymmetric , Ġbut Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ current Matrix Name }[ ${ row }, Ġ${ col }] Ġ!= Ġ${ current Matrix Name }[ ${ col }, Ġ${ row } ]. " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠRequire Ġthe Ġcurrent Ġmatrix Ġto Ġbe Ġsymmetric . Ċ Ġ*/ Ċ val ĠValidation Context . symmetric : ĠValidation Context Ġget () Ġ= Ġsymmetric () Ċ