package Ġcom . ded z tb h . ku ant um . j blas . matrix Ċ Ċ import Ġcom . github . do y aaaa aken . kotlin csv . client . Csv Reader Ċ import Ġcom . github . do y aaaa aken . kotlin csv . client . Csv Writer Ċ import Ġjava . io . Print Stream Ċ import Ġjava . io . PrintWriter Ċ import Ġjava . text . Decimal Format Ċ import Ġkotlin . math . absolute Value Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠD ED Z TB H Ġon Ġ 2 0 2 0 / 0 9 / 2 7 . Ċ Ġ* ĠProject ĠK u ant um Circuit Sim Ċ Ġ*/ Ċ Ċ fun Ġsave Csv ( A : ĠC Matrix , ĠfileName : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġrow Stride Ġ= ĠA . columns Ġ* Ġ 2 ĊĠĠĠ ĠCsv Writer (). write All ( A . transpose (). data . asList (). window ed ( row Stride , Ġrow Stride ), ĠfileName ) Ċ } Ċ Ċ fun Ġload Csv ( fileName : ĠString ): ĠC Matrix Ġ= ĊĠĠĠ ĠCsv Reader (). open ( fileName ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġread All As Sequence (). toList () ĊĠĠĠĠĠĠĠ ĠC Matrix ( m [ 0 ]. size Ġ/ Ġ 2 , Ġm . size ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġm . flatMap Ġ{ Ġit . map Ġ{ Ġit . toDouble () Ġ} Ġ}. toDouble Array () ĊĠĠĠĠĠĠĠ Ġ}. transpose () ĊĠĠĠ Ġ} Ċ Ċ @ Jvm Field Ċ val Ġfmt Ġ= ĠDecimal Format ("# . ######## # ") Ċ fun ĠC Num . toString F ancy (): ĠString Ġ{ ĊĠĠĠ Ġval Ġr Ġ= Ġreal () ĊĠĠĠ Ġval Ġi Ġ= Ġimag () ĊĠĠĠ Ġval Ġr str Ġ= Ġ"${ if Ġ( r Ġ< Ġ 0 ) Ġ"" Ġelse Ġ' Ġ' }${ fmt . format ( r )}" ĊĠĠĠ Ġval Ġ istr Ġ= Ġ" Ġ${ if Ġ( i Ġ< Ġ 0 ) Ġ'-' Ġelse Ġ'+ '} Ġ${ fmt . format ( i . absolute Value )} i " ĊĠĠĠ Ġreturn Ġr str . pad End ( 1 2 ) Ġ+ Ġ istr . pad End ( 1 5 ) Ċ } Ċ Ċ fun ĠC Matrix . print F ancy ( ĊĠĠĠ Ġall ss ket : ĠList < String >? Ġ= Ġnull , ĊĠĠĠ Ġo : ĠPrint Stream Ġ= ĠSystem . out Ċ ) Ġ= ĠPrintWriter ( o , Ġfalse ). apply Ġ{ ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġrows ) Ġ{ ĊĠĠĠĠĠĠĠ Ġall ss ket ?. let Ġ{ Ġprint ("${ it [ i ]} : Ġ") Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġcolumns ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( get ( i , Ġj ). toString F ancy ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġcolumns Ġ- Ġ 1 ) Ġprint (", Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln () ĊĠĠĠ Ġ} Ċ }. flush ()