package Ġde . web is . web is stud . the sis . re imer . math Ċ Ċ import Ġorg . apache . commons . math 3 . stat . correlation . K end alls Correlation Ċ import Ġorg . apache . commons . math 3 . util . Precision . equals Ċ Ċ private Ġval Ġk end alls Ġ= ĠK end alls Correlation () Ċ Ċ internal Ġfun Ġ< T Ġ: ĠComparable < T >> ĠList < T >. intersection K end all T au Correlation ( other : ĠList < T >): ĠDouble Ġ{ ĊĠĠĠ Ġreturn Ġcalculate Correlation ( this , Ġother ) Ġ{ Ġx Array , Ġy Array Ġ-> Ġk end alls . correlation ( x Array , Ġy Array ) Ġ} Ċ } Ċ Ċ private Ġfun Ġ< T Ġ: ĠComparable < T >> Ġcalculate Correlation ( first Ranking : ĠList < T >, Ġsecond Ranking : ĠList < T >, Ġcorrelation : Ġ( Double Array , ĠDouble Array ) Ġ-> ĠDouble ): ĠDouble Ġ{ ĊĠĠĠ Ġval Ġfirst Ranking Array Ġ= Ġbuild Correlation Array ( first Ranking , Ġsecond Ranking ) ĊĠĠĠ Ġval Ġsecond Ranking Array Ġ= Ġbuild Correlation Array ( second Ranking , Ġfirst Ranking ) ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġfirst Ranking Array . isEmpty () Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġfirst Ranking Array . size Ġ== Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequals ( first Ranking Array [ 0 ], Ġsecond Ranking Array [ 0 ]) Ġ-> Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcorrelation ( first Ranking Array , Ġsecond Ranking Array ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ< T Ġ: ĠComparable < T >> Ġbuild Correlation Array ( first Ranking : ĠList < T >, Ġsecond Ranking : ĠList < T >): ĠDouble Array Ġ{ ĊĠĠĠ Ġval Ġfirst Ranking Ids Ġ= Ġfirst Ranking ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check Has No Duplicates () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretain All ( second Ranking . check Has No Duplicates ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġval Ġindex Values Ġ= Ġfirst Ranking Ids . toList () ĊĠĠĠ Ġreturn Ġindex Values ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġfirst Ranking Ids . indexOf ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Int :: toDouble ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toDouble Array () Ċ } Ċ Ċ private Ġfun Ġ< T > ĠList < T >. check Has No Duplicates (): ĠList < T > Ġ{ ĊĠĠĠ Ġcheck ( distinct (). size Ġ== Ġsize ) Ġ{ Ġ" The Ġlist Ġcontains Ġduplicates ." Ġ} ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ