data Ġclass ĠLine ( ĊĠĠĠ Ġvar Ġx : ĠDouble , ĊĠĠĠ Ġvar Ġy : ĠDouble , ĊĠĠĠ Ġvar Ġc : ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġconstructor ( line : ĠLine ) Ġ: Ġthis ( line . x , Ġline . y , Ġline . c ) ĊĊĠĠĠ Ġfun Ġget Y ( a : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(- c Ġ- Ġa Ġ* Ġx ) Ġ/ Ġy ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠDot ( ĊĠĠĠ Ġvar Ġx : ĠDouble , ĊĠĠĠ Ġvar Ġy : ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġconstructor ( dot : ĠDot ) Ġ: Ġthis ( dot . x , Ġdot . y ) Ċ } Ċ Ċ fun ĠArray < Dot >. split (): ĠPair < Double Array , ĠDouble Array > Ġ{ ĊĠĠĠ Ġval Ġx Array Ġ= ĠDouble Array ( this . size ) Ġ{ Ġ 0 . 0 Ġ} ĊĠĠĠ Ġval Ġy Array Ġ= ĠDouble Array ( this . size ) Ġ{ Ġ 0 . 0 Ġ} ĊĊĠĠĠ Ġfor Ġ( i Ġin Ġthis . indices ) Ġ{ ĊĠĠĠĠĠĠĠ Ġx Array [ i ] Ġ= Ġthis [ i ]. x ĊĠĠĠĠĠĠĠ Ġy Array [ i ] Ġ= Ġthis [ i ]. y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġx Array Ġto Ġy Array Ċ }