@@ -468,19 +468,18 @@ impl<'a, T: RealNumber, M: Matrix<T>, K: Kernel<T, M::RowVector>> Optimizer<'a,
468
468
idx_2 : Option < usize > ,
469
469
cache : & mut Cache < T , M , K > ,
470
470
) -> Option < ( usize , usize , T ) > {
471
-
472
471
match ( idx_1, idx_2) {
473
472
( None , None ) => {
474
473
if self . gmax > -self . gmin {
475
474
self . select_pair ( None , Some ( self . svmax ) , cache)
476
475
} else {
477
476
self . select_pair ( Some ( self . svmin ) , None , cache)
478
- }
479
- } ,
477
+ }
478
+ }
480
479
( Some ( idx_1) , None ) => {
481
- let sv1 = & self . sv [ idx_1] ;
480
+ let sv1 = & self . sv [ idx_1] ;
482
481
let mut idx_2 = None ;
483
- let mut k_v_12 = None ;
482
+ let mut k_v_12 = None ;
484
483
let km = sv1. k ;
485
484
let gm = sv1. grad ;
486
485
let mut best = T :: zero ( ) ;
@@ -493,7 +492,8 @@ impl<'a, T: RealNumber, M: Matrix<T>, K: Kernel<T, M::RowVector>> Optimizer<'a,
493
492
curv = self . tau ;
494
493
}
495
494
let mu = z / curv;
496
- if ( mu > T :: zero ( ) && v. alpha < v. cmax ) || ( mu < T :: zero ( ) && v. alpha > v. cmin ) {
495
+ if ( mu > T :: zero ( ) && v. alpha < v. cmax ) || ( mu < T :: zero ( ) && v. alpha > v. cmin )
496
+ {
497
497
let gain = z * mu;
498
498
if gain > best {
499
499
best = gain;
@@ -503,10 +503,14 @@ impl<'a, T: RealNumber, M: Matrix<T>, K: Kernel<T, M::RowVector>> Optimizer<'a,
503
503
}
504
504
}
505
505
506
- idx_2. map ( |idx_2| {
507
- ( idx_1, idx_2, k_v_12. unwrap_or ( self . kernel . apply ( & self . sv [ idx_1] . x , & self . sv [ idx_2] . x ) ) )
508
- } )
509
- } ,
506
+ idx_2. map ( |idx_2| {
507
+ (
508
+ idx_1,
509
+ idx_2,
510
+ k_v_12. unwrap_or ( self . kernel . apply ( & self . sv [ idx_1] . x , & self . sv [ idx_2] . x ) ) ,
511
+ )
512
+ } )
513
+ }
510
514
( None , Some ( idx_2) ) => {
511
515
let mut idx_1 = None ;
512
516
let sv2 = & self . sv [ idx_2] ;
@@ -524,7 +528,8 @@ impl<'a, T: RealNumber, M: Matrix<T>, K: Kernel<T, M::RowVector>> Optimizer<'a,
524
528
}
525
529
526
530
let mu = z / curv;
527
- if ( mu > T :: zero ( ) && v. alpha > v. cmin ) || ( mu < T :: zero ( ) && v. alpha < v. cmax ) {
531
+ if ( mu > T :: zero ( ) && v. alpha > v. cmin ) || ( mu < T :: zero ( ) && v. alpha < v. cmax )
532
+ {
528
533
let gain = z * mu;
529
534
if gain > best {
530
535
best = gain;
@@ -534,15 +539,20 @@ impl<'a, T: RealNumber, M: Matrix<T>, K: Kernel<T, M::RowVector>> Optimizer<'a,
534
539
}
535
540
}
536
541
537
- idx_1. map ( |idx_1| {
538
- ( idx_1, idx_2, k_v_12. unwrap_or ( self . kernel . apply ( & self . sv [ idx_1] . x , & self . sv [ idx_2] . x ) ) )
542
+ idx_1. map ( |idx_1| {
543
+ (
544
+ idx_1,
545
+ idx_2,
546
+ k_v_12. unwrap_or ( self . kernel . apply ( & self . sv [ idx_1] . x , & self . sv [ idx_2] . x ) ) ,
547
+ )
539
548
} )
540
- } ,
541
- ( Some ( idx_1) , Some ( idx_2) ) => {
542
- Some ( ( idx_1, idx_2, self . kernel . apply ( & self . sv [ idx_1] . x , & self . sv [ idx_2] . x ) ) )
543
549
}
550
+ ( Some ( idx_1) , Some ( idx_2) ) => Some ( (
551
+ idx_1,
552
+ idx_2,
553
+ self . kernel . apply ( & self . sv [ idx_1] . x , & self . sv [ idx_2] . x ) ,
554
+ ) ) ,
544
555
}
545
-
546
556
}
547
557
548
558
fn smo (
0 commit comments