/ *   
 
   *   P R O J E C T :   N y A R T o o l k i t 
 
   *   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
   *   T h i s   w o r k   i s   b a s e d   o n   t h e   o r i g i n a l   A R T o o l K i t   d e v e l o p e d   b y 
 
   *       H i r o k a z u   K a t o 
 
   *       M a r k   B i l l i n g h u r s t 
 
   *       H I T L a b ,   U n i v e r s i t y   o f   W a s h i n g t o n ,   S e a t t l e 
 
   *   h t t p : / / w w w . h i t l . w a s h i n g t o n . e d u / a r t o o l k i t / 
 
   * 
 
   *   T h e   N y A R T o o l k i t   i s   J a v a   e d i t i o n   A R T o o l K i t   c l a s s   l i b r a r y . 
 
   *   C o p y r i g h t   ( C ) 2 0 0 8 - 2 0 1 2   R y o   I i z u k a 
 
   * 
 
   *   T h i s   p r o g r a m   i s   f r e e   s o f t w a r e :   y o u   c a n   r e d i s t r i b u t e   i t   a n d / o r   m o d i f y 
 
   *   i t   u n d e r   t h e   t e r m s   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e   a s   p u b l i s h e d   b y 
 
   *   t h e   F r e e   S o f t w a r e   F o u n d a t i o n ,   e i t h e r   v e r s i o n   3   o f   t h e   L i c e n s e ,   o r 
 
   *   ( a t   y o u r   o p t i o n )   a n y   l a t e r   v e r s i o n . 
 
   *   
 
   *   T h i s   p r o g r a m   i s   d i s t r i b u t e d   i n   t h e   h o p e   t h a t   i t   w i l l   b e   u s e f u l , 
 
   *   b u t   W I T H O U T   A N Y   W A R R A N T Y ;   w i t h o u t   e v e n   t h e   i m p l i e d   w a r r a n t y   o f 
 
   *   M E R C H A N T A B I L I T Y   o r   F I T N E S S   F O R   A   P A R T I C U L A R   P U R P O S E .     S e e   t h e 
 
   *   G N U   G e n e r a l   P u b l i c   L i c e n s e   f o r   m o r e   d e t a i l s . 
 
   * 
 
   *   Y o u   s h o u l d   h a v e   r e c e i v e d   a   c o p y   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e 
 
   *   a l o n g   w i t h   t h i s   p r o g r a m .     I f   n o t ,   s e e   < h t t p : / / w w w . g n u . o r g / l i c e n s e s / > . 
 
   *   
 
   *   F o r   f u r t h e r   i n f o r m a t i o n   p l e a s e   c o n t a c t . 
 
   * 	 h t t p : / / n y a t l a . j p / n y a t o o l k i t / 
 
   * 	 < a i r m a i l ( a t ) e b o n y . p l a l a . o r . j p >   o r   < n y a t l a ( a t ) n y a t l a . j p > 
 
   *   
 
   * / 
 
 u s i n g   S y s t e m ; 
 
 u s i n g   S y s t e m . D i a g n o s t i c s ; 
 
 n a m e s p a c e   j p . n y a t l a . n y a r t o o l k i t . c s . c o r e 
 
 { 
 
 
 
         / * * 
 
           *   S0n0000o00N y A R M a t k0;NbR_j0RW0~0Y00
 
           * / 
 
         p u b l i c   c l a s s   N y A R M a t P c a   :   N y A R M a t 
 
         { 
 
                 p r i v a t e   N y A R V e c   w k _ P C A _ Q R M _ e v   =   n e w   N y A R V e c ( 1 ) ; 
 
                 p r i v a t e   N y A R M a t P c a   w k _ P C A _ P C A _ u   =   n u l l ; 
 
                 p u b l i c   N y A R M a t P c a ( i n t   i _ r ,   i n t   i _ c ) 
 
                         :   b a s e ( i _ r ,   i _ c ) 
 
                 { 
 
                 } 
 
 
 
 
 
                 / * * 
 
                   *   s(Wn0LRk0;NbRRg0[LW0f00P}g0t h i s h0_pex0<h
}W0~0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   o _ e v e c 
 
                   *   
Nf
 
                   *   @ p a r a m   o _ e v 
 
                   *   
Nf
 
                   *   @ p a r a m   o _ m e a n 
 
                   *   
Nf
 
                   *   @ 
 
                   * / 
 
                 p u b l i c   v o i d   p c a ( N y A R M a t   o _ e v e c ,   N y A R V e c   o _ e v ,   N y A R V e c   o _ m e a n ) 
 
                 { 
 
                         d o u b l e   l _ r o w   =   t h i s . r o w ; / /   r o w   =   i n p u t - > r o w ; 
 
                         d o u b l e   l _ c l m   =   t h i s . c l m ; / /   c l m   =   i n p u t - > c l m ; 
 
                         d o u b l e   c h e c k   =   ( l _ r o w   <   l _ c l m )   ?   l _ r o w   :   l _ c l m ; 
 
 
 
                         D e b u g . A s s e r t ( l _ r o w   > =   2   | |   l _ c l m   > =   2 ) ; 
 
                         D e b u g . A s s e r t ( o _ e v e c . c l m   = =   l _ c l m   & &   o _ e v e c . r o w   = =   c h e c k ) ; 
 
                         D e b u g . A s s e r t ( o _ e v . g e t C l m ( )   = =   c h e c k ) ; 
 
                         D e b u g . A s s e r t ( o _ m e a n . g e t C l m ( )   = =   l _ c l m ) ; 
 
 
 
                         d o u b l e   s r o w   =   M a t h . S q r t ( ( d o u b l e ) l _ r o w ) ; 
 
                         P C A _ E X ( o _ m e a n ) ; 
 
 
 
                         P C A _ C E N T E R ( t h i s ,   o _ m e a n ) ; 
 
 
 
                         i n t   i ,   j ; 
 
                         / /   F o r 	YfO K 
 
                         f o r   ( i   =   0 ;   i   <   l _ r o w ;   i + + ) 
 
                         { 
 
                                 f o r   ( j   =   0 ;   j   <   l _ c l m ;   j + + ) 
 
                                 { 
 
                                         t h i s . _ m [ i ] [ j ]   / =   s r o w ; / /   w o r k - > m [ i ]   / =   s r o w ; 
 
                                 } 
 
                         } 
 
 
 
                         P C A _ P C A ( o _ e v e c ,   o _ e v ) ; 
 
 
 
                         d o u b l e   s u m   =   0 . 0 ; 
 
                         d o u b l e [ ]   e v _ a r r a y   =   o _ e v . g e t A r r a y ( ) ; 
 
                         i n t   e v _ c l m   =   o _ e v . g e t C l m ( ) ; 
 
                         / /   F o r 	Yfybk
 
                         f o r   ( i   =   0 ;   i   <   e v _ c l m ;   i + + ) 
 
                         { / /   f o r ( i n t   i   =   0 ;   i   <   e v - > c l m ;   i + +   ) { 
 
                                 s u m   + =   e v _ a r r a y [ i ] ; / /   s u m   + =   e v - > v [ i ] ; 
 
                         } 
 
                         / /   F o r 	Yfybk
 
                         f o r   ( i   =   0 ;   i   <   e v _ c l m ;   i + + ) 
 
                         { / /   f o r ( i n t   i   =   0 ;   i   <   e v - > c l m ;   i + +   ) { 
 
                                 e v _ a r r a y [ i ]   / =   s u m ; / /   e v - > v [ i ]   / =   s u m ; 
 
                         } 
 
                         r e t u r n ; 
 
                 } 
 
 
 
                 / * * 
 
                   *   A R T o o l K i t n0P C A peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   o u t p u t 
 
                   *   
Nf
 
                   *   @ p a r a m   o _ e v 
 
                   *   
Nf
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   v o i d   P C A _ P C A ( N y A R M a t   o _ o u t p u t ,   N y A R V e c   o _ e v ) 
 
                 { 
 
 
 
                         i n t   l _ r o w ,   l _ c l m ,   m i n ; 
 
                         d o u b l e [ ]   e v _ a r r a y   =   o _ e v . g e t A r r a y ( ) ; 
 
 
 
                         l _ r o w   =   t h i s . r o w ; / /   r o w   =   i n p u t - > r o w ; 
 
                         l _ c l m   =   t h i s . c l m ; / /   c l m   =   i n p u t - > c l m ; 
 
                         m i n   =   ( l _ c l m   <   l _ r o w )   ?   l _ c l m   :   l _ r o w ; 
 
                         i f   ( l _ r o w   <   2   | |   l _ c l m   <   2 ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( o _ o u t p u t . c l m   ! =   t h i s . c l m ) 
 
                         { / /   i f (   o u t p u t - > c l m   ! =   i n p u t - > c l m   ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( o _ o u t p u t . r o w   ! =   m i n ) 
 
                         { / /   i f (   o u t p u t - > r o w   ! =   m i n   ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( o _ e v . g e t C l m ( )   ! =   m i n ) 
 
                         { / /   i f (   e v - > c l m   ! =   m i n   ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
 
 
                         N y A R M a t P c a   u ; / /   u   = n e w   N y A R M a t (   m i n ,   m i n   ) ; 
 
                         i f   ( t h i s . w k _ P C A _ P C A _ u   = =   n u l l ) 
 
                         { 
 
                                 u   =   n e w   N y A R M a t P c a ( m i n ,   m i n ) ; 
 
                                 t h i s . w k _ P C A _ P C A _ u   =   u ; 
 
                         } 
 
                         e l s e 
 
                         { 
 
                                 u   =   t h i s . w k _ P C A _ P C A _ u ; 
 
                                 u . r e a l l o c ( m i n ,   m i n ) ; 
 
                         } 
 
 
 
                         i f   ( l _ r o w   <   l _ c l m ) 
 
                         { 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                 P C A _ x _ b y _ x t ( t h i s ,   u ) ; / /   i f ( x _ b y _ x t (   i n p u t ,   u   )   <   0   )   { 
 
                         } 
 
                         e l s e 
 
                         { 
 
                                 P C A _ x t _ b y _ x ( t h i s ,   u ) ; / /   i f ( x t _ b y _ x (   i n p u t ,   u   )   <   0   )   { 
 
                         } 
 
                         u . P C A _ Q R M ( o _ e v ) ; 
 
 
 
                         d o u b l e [ ] [ ]   m 1 ,   m 2 ; 
 
                         i f   ( l _ r o w   <   l _ c l m ) 
 
                         { 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                 P C A _ E V _ c r e a t e ( t h i s ,   u ,   o _ o u t p u t ,   o _ e v ) ; 
 
                         } 
 
                         e l s e 
 
                         { 
 
                                 m 1   =   u . _ m ; / /   m 1   =   u - > m ; 
 
                                 m 2   =   o _ o u t p u t . _ m ; / /   m 2   =   o u t p u t - > m ; 
 
                                 i n t   i ; 
 
                                 f o r   ( i   =   0 ;   i   <   m i n ;   i + + ) 
 
                                 { 
 
                                         i f   ( e v _ a r r a y [ i ]   <   P C A _ V Z E R O ) 
 
                                         { / /   i f (   e v - > v [ i ]   <   V Z E R O   ) { 
 
                                                 b r e a k ; 
 
                                         } 
 
                                         f o r   ( i n t   j   =   0 ;   j   <   m i n ;   j + + ) 
 
                                         { 
 
                                                 m 2 [ i ] [ j ]   =   m 1 [ i ] [ j ] ; / /   * ( m 2 + + )   =   * ( m 1 + + ) ; 
 
                                         } 
 
                                 } 
 
                                 f o r   ( ;   i   <   m i n ;   i + + ) 
 
                                 { / /   f o r (   ;   i   <   m i n ;   i + + ) { 
 
                                         / /   0000_0P0B0c0f0]0F0`0K000000000( 2 0 0 8 / 0 3 / 2 6 ) N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                         e v _ a r r a y [ i ]   =   0 . 0 ; / /   e v - > v [ i ]   =   0 . 0 ; 
 
                                         f o r   ( i n t   j   =   0 ;   j   <   m i n ;   j + + ) 
 
                                         { 
 
                                                 m 2 [ i ] [ j ]   =   0 . 0 ; / /   * ( m 2 + + )   =   0 . 0 ; 
 
                                         } 
 
                                 } 
 
                         } 
 
                 } 
 
                 p r i v a t e   c o n s t   d o u b l e   P C A _ E P S   =   1 e - 6 ;   / /   # d e f i n e   E P S   1 e - 6 
 
 
 
                 p r i v a t e   c o n s t   i n t   P C A _ M A X _ I T E R   =   1 0 0 ;   / /   # d e f i n e   M A X _ I T E R   1 0 0 
 
 
 
                 p r i v a t e   c o n s t   d o u b l e   P C A _ V Z E R O   =   1 e - 1 6 ;   / /   # d e f i n e   V Z E R O   1 e - 1 6 
 
                 / * * 
 
                   *   A R T o o l K i t n0E V _ c r e a t e peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   i n p u t 
 
                   *   
Nf0
 
                   *   @ p a r a m   u 
 
                   *   
Nf0
 
                   *   @ p a r a m   o u t p u t 
 
                   *   
Nf0
 
                   *   @ p a r a m   e v 
 
                   *   
Nf0
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   s t a t i c   v o i d   P C A _ E V _ c r e a t e ( N y A R M a t   i n p u t ,   N y A R M a t   u ,   N y A R M a t   o u t p u t ,   N y A R V e c   e v ) 
 
                 { 
 
                         N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                         i n t   r o w ,   c l m ; 
 
                         r o w   =   i n p u t . r o w ; / /   r o w   =   i n p u t - > r o w ; 
 
                         c l m   =   i n p u t . c l m ; / /   c l m   =   i n p u t - > c l m ; 
 
                         i f   ( r o w   < =   0   | |   c l m   < =   0 ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( u . r o w   ! =   r o w   | |   u . c l m   ! =   r o w ) 
 
                         { / /   i f (   u - > r o w   ! =   r o w   | |   u - > c l m   ! = 
 
                                 / /   r o w   ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( o u t p u t . r o w   ! =   r o w   | |   o u t p u t . c l m   ! =   c l m ) 
 
                         { / /   i f (   o u t p u t - > r o w   ! = 
 
                                 / /   r o w   | |   o u t p u t - > c l m   ! = 
 
                                 / /   c l m   ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( e v . g e t C l m ( )   ! =   r o w ) 
 
                         { / /   i f (   e v - > c l m   ! =   r o w   ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         d o u b l e [ ] [ ]   m ,   i n _ ; 
 
                         d o u b l e [ ]   m 1 ,   e v _ a r r a y ; 
 
                         d o u b l e   s u m ,   w o r k ; 
 
 
 
                         N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                         m   =   o u t p u t . _ m ; / /   m   =   o u t p u t - > m ; 
 
                         i n _   =   i n p u t . _ m ; 
 
                         i n t   i ; 
 
                         e v _ a r r a y   =   e v . g e t A r r a y ( ) ; 
 
                         f o r   ( i   =   0 ;   i   <   r o w ;   i + + ) 
 
                         { 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                 i f   ( e v _ a r r a y [ i ]   <   P C A _ V Z E R O ) 
 
                                 { / /   i f (   e v - > v [ i ]   <   V Z E R O   ) { 
 
                                         b r e a k ; 
 
                                 } 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                 w o r k   =   1   /   M a t h . S q r t ( M a t h . A b s ( e v _ a r r a y [ i ] ) ) ; / /   w o r k   =   1   / 
 
                                 / /   s q r t ( f a b s ( e v - > v [ i ] ) ) ; 
 
                                 f o r   ( i n t   j   =   0 ;   j   <   c l m ;   j + + ) 
 
                                 { 
 
                                         s u m   =   0 . 0 ; 
 
                                         m 1   =   u . _ m [ i ] ; / /   m 1   =   & ( u - > m [ i * r o w ] ) ; 
 
                                         / /   m 2 = i n p u t . g e t P o i n t e r ( j ) ; / / m 2   =   & ( i n p u t - > m [ j ] ) ; 
 
                                         f o r   ( i n t   k   =   0 ;   k   <   r o w ;   k + + ) 
 
                                         { 
 
                                                 s u m   + =   m 1 [ k ]   +   i n _ [ k ] [ j ] ; / /   s u m   + =   * m 1   *   * m 2 ; 
 
                                                 / /   m 1 . i n c P t r ( ) ;   / / m 1 + + ; 
 
                                                 / /   m 2 . a d d P t r ( c l m ) ; / / m 2   + =   c l m ; 
 
                                         } 
 
                                         m 1 [ j ]   =   s u m   *   w o r k ; / /   * ( m + + )   =   s u m   *   w o r k ; 
 
                                         / /   { / / * ( m + + )   =   s u m   *   w o r k ; 
 
                                         / /   m . s e t ( s u m   *   w o r k ) ; 
 
                                         / /   m . i n c P t r ( ) ; } 
 
                                 } 
 
                         } 
 
                         f o r   ( ;   i   <   r o w ;   i + + ) 
 
                         { 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                 e v _ a r r a y [ i ]   =   0 . 0 ; / /   e v - > v [ i ]   =   0 . 0 ; 
 
                                 f o r   ( i n t   j   =   0 ;   j   <   c l m ;   j + + ) 
 
                                 { 
 
                                         m [ i ] [ j ]   =   0 . 0 ; 
 
                                         / /   m . s e t ( 0 . 0 ) ; / / * ( m + + )   =   0 . 0 ; 
 
                                         / /   m . i n c P t r ( ) ; 
 
                                 } 
 
                         } 
 
                 } 
 
 
 
                 / * * 
 
                   *   A R T o o l K i t n0E X peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   m e a n 
 
                   *   
Nf
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   v o i d   P C A _ E X ( N y A R V e c   m e a n ) 
 
                 { 
 
                         i n t   l r o w ,   l c l m ; 
 
                         i n t   i ,   i 2 ; 
 
                         l r o w   =   t h i s . r o w ; 
 
                         l c l m   =   t h i s . c l m ; 
 
                         d o u b l e [ ] [ ]   l m   =   t h i s . _ m ; 
 
 
 
                         i f   ( l r o w   < =   0   | |   l c l m   < =   0 ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( m e a n . g e t C l m ( )   ! =   l c l m ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         / /   d o u b l e [ ]   m e a n _ a r r a y = m e a n . g e t A r r a y ( ) ; 
 
                         / /   m e a n . z e r o C l e a r ( ) ; 
 
                         d o u b l e [ ]   m e a n _ a r r a y   =   m e a n . g e t A r r a y ( ) ; 
 
                         d o u b l e   w ; 
 
                         / /   F o r 	Yfybk
 
                         f o r   ( i 2   =   0 ;   i 2   <   l c l m ;   i 2 + + ) 
 
                         { 
 
                                 w   =   0 . 0 ; 
 
                                 f o r   ( i   =   0 ;   i   <   l r o w ;   i + + ) 
 
                                 { 
 
                                         / /   * ( v + + )   + =   * ( m + + ) ; 
 
                                         w   + =   l m [ i ] [ i 2 ] ; 
 
                                 } 
 
                                 m e a n _ a r r a y [ i 2 ]   =   w   /   l r o w ; / /   m e a n - > v [ i ]   / =   r o w ; 
 
                         } 
 
                 } 
 
 
 
                 / * * 
 
                   *   A R T o o l K i t n0C E N T E R peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   i n o u t 
 
                   *   
Nf
 
                   *   @ p a r a m   m e a n 
 
                   *   
Nf
 
                   * / 
 
                 p r i v a t e   s t a t i c   v o i d   P C A _ C E N T E R ( N y A R M a t   i n o u t ,   N y A R V e c   m e a n ) 
 
                 { 
 
                         d o u b l e [ ]   v ; 
 
                         i n t   r o w ,   c l m ; 
 
 
 
                         r o w   =   i n o u t . r o w ; 
 
                         c l m   =   i n o u t . c l m ; 
 
                         i f   ( m e a n . g e t C l m ( )   ! =   c l m ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         d o u b l e [ ] [ ]   i m   =   i n o u t . _ m ; 
 
                         d o u b l e [ ]   i m _ i ; 
 
                         d o u b l e   w 0 ,   w 1 ; 
 
                         v   =   m e a n . g e t A r r a y ( ) ; 
 
                         / /   yrk00000000L0RSY00c l m = 1 h02 h0M0`0Q00%R00g0QtW0~0Y00
 
                         s w i t c h   ( c l m ) 
 
                         { 
 
                                 c a s e   1 : 
 
                                         w 0   =   v [ 0 ] ; 
 
                                         f o r   ( i n t   i   =   0 ;   i   <   r o w ;   i + + ) 
 
                                         { 
 
                                                 i m [ i ] [ 0 ]   - =   w 0 ; 
 
                                         } 
 
                                         b r e a k ; 
 
                                 c a s e   2 : 
 
                                         w 0   =   v [ 0 ] ; 
 
                                         w 1   =   v [ 1 ] ; 
 
                                         f o r   ( i n t   i   =   0 ;   i   <   r o w ;   i + + ) 
 
                                         { 
 
                                                 i m _ i   =   i m [ i ] ; 
 
                                                 i m _ i [ 0 ]   - =   w 0 ; 
 
                                                 i m _ i [ 1 ]   - =   w 1 ; 
 
                                         } 
 
                                         b r e a k ; 
 
                                 d e f a u l t : 
 
                                         f o r   ( i n t   i   =   0 ;   i   <   r o w ;   i + + ) 
 
                                         { 
 
                                                 i m _ i   =   i m [ i ] ; 
 
                                                 f o r   ( i n t   j   =   0 ;   j   <   c l m ;   j + + ) 
 
                                                 { 
 
                                                         / /   * ( m + + )   - =   * ( v + + ) ; 
 
                                                         i m _ i [ j ]   - =   v [ j ] ; 
 
                                                 } 
 
                                         } 
 
                                         b r e a k ; 
 
                         } 
 
                         r e t u r n ; 
 
                 } 
 
                 / * * 
 
                   *   A R T o o l K i t n0x _ b y _ x t h0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   S0n0peo0*g0000n0p0O(uY00h0OYL0zvuW0~0Y00
 
                   *   @ p a r a m   i n p u t 
 
                   *   
Nf
 
                   *   @ p a r a m   o u t p u t 
 
                   *   
Nf
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   s t a t i c   v o i d   P C A _ x _ b y _ x t ( N y A R M a t   i n p u t ,   N y A R M a t   o u t p u t ) 
 
                 { 
 
                         N y A R E x c e p t i o n . t r a p ( " R\O*g0000/ MRS*g0000" ) ; 
 
                         i n t   r o w ,   c l m ; 
 
                         / /   d o u b l e [ ] [ ]   o u t ; 
 
                         d o u b l e [ ]   i n 1 ,   i n 2 ; 
 
 
 
                         N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                         r o w   =   i n p u t . r o w ; 
 
                         c l m   =   i n p u t . c l m ; 
 
                         N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                         i f   ( o u t p u t . r o w   ! =   r o w   | |   o u t p u t . c l m   ! =   r o w ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
 
 
                         / /   o u t   =   o u t p u t . g e t A r r a y ( ) ; 
 
                         f o r   ( i n t   i   =   0 ;   i   <   r o w ;   i + + ) 
 
                         { 
 
                                 f o r   ( i n t   j   =   0 ;   j   <   r o w ;   j + + ) 
 
                                 { 
 
                                         i f   ( j   <   i ) 
 
                                         { 
 
                                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                                 o u t p u t . _ m [ i ] [ j ]   =   o u t p u t . _ m [ j ] [ i ] ; / /   * o u t   = 
 
                                                 / /   o u t p u t - > m [ j * r o w + i ] ; 
 
                                         } 
 
                                         e l s e 
 
                                         { 
 
                                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                                 i n 1   =   i n p u t . _ m [ i ] ; / /   i n p u t . g e t R o w A r r a y ( i ) ; / / i n 1   =   & ( i n p u t - > m [ c l m * i ] ) ; 
 
                                                 i n 2   =   i n p u t . _ m [ j ] ; / /   i n p u t . g e t R o w A r r a y ( j ) ; / / i n 2   =   & ( i n p u t - > m [ c l m * j ] ) ; 
 
                                                 o u t p u t . _ m [ i ] [ j ]   =   0 ; / /   * o u t   =   0 . 0 ; 
 
                                                 f o r   ( i n t   k   =   0 ;   k   <   c l m ;   k + + ) 
 
                                                 { 
 
                                                         o u t p u t . _ m [ i ] [ j ]   + =   ( i n 1 [ k ]   *   i n 2 [ k ] ) ; / /   * o u t   + =   * ( i n 1 + + ) 
 
                                                         / /   *   * ( i n 2 + + ) ; 
 
                                                 } 
 
                                         } 
 
                                         / /   o u t . i n c P t r ( ) ; 
 
                                 } 
 
                         } 
 
                 } 
 
 
 
                 / * * 
 
                   *   A R T o o l K i t n0x t _ b y _ x peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   i n p u t 
 
                   *   
Nf
 
                   *   @ p a r a m   i _ o u t p u t 
 
                   *   
Nf
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   s t a t i c   v o i d   P C A _ x t _ b y _ x ( N y A R M a t   i n p u t ,   N y A R M a t   i _ o u t p u t ) 
 
                 { 
 
                         d o u b l e [ ]   i n _ ; 
 
                         i n t   r o w ,   c l m ; 
 
 
 
                         r o w   =   i n p u t . r o w ; 
 
                         c l m   =   i n p u t . c l m ; 
 
                         i f   ( i _ o u t p u t . r o w   ! =   c l m   | |   i _ o u t p u t . c l m   ! =   c l m ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
 
 
                         i n t   k ,   j ; 
 
                         d o u b l e [ ] [ ]   o u t _ m   =   i _ o u t p u t . _ m ; 
 
                         d o u b l e   w ; 
 
                         f o r   ( i n t   i   =   0 ;   i   <   c l m ;   i + + ) 
 
                         { 
 
                                 f o r   ( j   =   0 ;   j   <   c l m ;   j + + ) 
 
                                 { 
 
                                         i f   ( j   <   i ) 
 
                                         { 
 
                                                 o u t _ m [ i ] [ j ]   =   o u t _ m [ j ] [ i ] ; / /   * o u t   =   o u t p u t - > m [ j * c l m + i ] ; 
 
                                         } 
 
                                         e l s e 
 
                                         { 
 
                                                 w   =   0 . 0 ; / /   * o u t   =   0 . 0 ; 
 
                                                 f o r   ( k   =   0 ;   k   <   r o w ;   k + + ) 
 
                                                 { 
 
                                                         i n _   =   i n p u t . _ m [ k ] ; / /   i n = i n p u t . g e t R o w A r r a y ( k ) ; 
 
                                                         w   + =   ( i n _ [ i ]   *   i n _ [ j ] ) ; / /   * o u t   + =   * i n 1   *   * i n 2 ; 
 
                                                 } 
 
                                                 o u t _ m [ i ] [ j ]   =   w ; 
 
                                         } 
 
                                 } 
 
                         } 
 
                 } 
 
                 / * * 
 
                   *   A R T o o l K i t n0Q R M peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   d v 
 
                   *   
Nf
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   v o i d   P C A _ Q R M ( N y A R V e c   d v ) 
 
                 { 
 
                         d o u b l e   w ,   t ,   s ,   x ,   y ,   c ; 
 
                         i n t   d i m ,   i t e r ; 
 
                         d o u b l e [ ]   d v _ a r r a y   =   d v . g e t A r r a y ( ) ; 
 
 
 
                         d i m   =   t h i s . r o w ; 
 
                         i f   ( d i m   ! =   t h i s . c l m   | |   d i m   <   2 ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( d v . g e t C l m ( )   ! =   d i m ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
 
 
                         N y A R V e c   e v   =   t h i s . w k _ P C A _ Q R M _ e v ; 
 
                         e v . r e a l l o c ( d i m ) ; 
 
                         d o u b l e [ ]   e v _ a r r a y   =   e v . g e t A r r a y ( ) ; 
 
                         i f   ( e v   = =   n u l l ) 
 
                         { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         d o u b l e [ ] [ ]   L _ m   =   t h i s . _ m ; 
 
                         t h i s . v e c T r i d i a g o n a l i z e ( d v ,   e v ,   1 ) ; 
 
 
 
                         e v _ a r r a y [ 0 ]   =   0 . 0 ; / /   e v - > v [ 0 ]   =   0 . 0 ; 
 
                         f o r   ( i n t   h   =   d i m   -   1 ;   h   >   0 ;   h - - ) 
 
                         { 
 
                                 i n t   j   =   h ; 
 
                                 w h i l e   ( j   >   0   & &   M a t h . A b s ( e v _ a r r a y [ j ] )   >   P C A _ E P S   *   ( M a t h . A b s ( d v _ a r r a y [ j   -   1 ] )   +   M a t h . A b s ( d v _ a r r a y [ j ] ) ) ) 
 
                                 { / /   w h i l e ( j > 0   & &   f a b s ( e v - > v [ j ] )   > E P S * ( f a b s ( d v - > v [ j - 1 ] ) + f a b s ( d v - > v [ j ] ) ) ) 
 
                                         / /   j - - ; 
 
                                         j - - ; 
 
                                 } 
 
                                 i f   ( j   = =   h ) 
 
                                 { 
 
                                         c o n t i n u e ; 
 
                                 } 
 
                                 i t e r   =   0 ; 
 
                                 d o 
 
                                 { 
 
                                         i t e r + + ; 
 
                                         i f   ( i t e r   >   P C A _ M A X _ I T E R ) 
 
                                         { 
 
                                                 b r e a k ; 
 
                                         } 
 
                                         w   =   ( d v _ a r r a y [ h   -   1 ]   -   d v _ a r r a y [ h ] )   /   2 ; / /   w   =   ( d v - > v [ h - 1 ]   - d v - > v [ h ] )   /   2 ; / / S0S0
 
                                         t   =   e v _ a r r a y [ h ]   *   e v _ a r r a y [ h ] ; / /   t   =   e v - > v [ h ]   *   e v - > v [ h ] ; 
 
                                         s   =   M a t h . S q r t ( w   *   w   +   t ) ; 
 
                                         i f   ( w   <   0 ) 
 
                                         { 
 
                                                 s   =   - s ; 
 
                                         } 
 
                                         x   =   d v _ a r r a y [ j ]   -   d v _ a r r a y [ h ]   +   t   /   ( w   +   s ) ; / /   x   =   d v - > v [ j ]   - d v - > v [ h ]   + t / ( w + s ) ; 
 
                                         y   =   e v _ a r r a y [ j   +   1 ] ; / /   y   =   e v - > v [ j + 1 ] ; 
 
                                         f o r   ( i n t   k   =   j ;   k   <   h ;   k + + ) 
 
                                         { 
 
                                                 i f   ( M a t h . A b s ( x )   > =   M a t h . A b s ( y ) ) 
 
                                                 { 
 
                                                         i f   ( M a t h . A b s ( x )   >   P C A _ V Z E R O ) 
 
                                                         { 
 
                                                                 t   =   - y   /   x ; 
 
                                                                 c   =   1   /   M a t h . S q r t ( t   *   t   +   1 ) ; 
 
                                                                 s   =   t   *   c ; 
 
                                                         } 
 
                                                         e l s e 
 
                                                         { 
 
                                                                 c   =   1 . 0 ; 
 
                                                                 s   =   0 . 0 ; 
 
                                                         } 
 
                                                 } 
 
                                                 e l s e 
 
                                                 { 
 
                                                         t   =   - x   /   y ; 
 
                                                         s   =   1 . 0   /   M a t h . S q r t ( t   *   t   +   1 ) ; 
 
                                                         c   =   t   *   s ; 
 
                                                 } 
 
                                                 w   =   d v _ a r r a y [ k ]   -   d v _ a r r a y [ k   +   1 ] ; / /   w   =   d v - > v [ k ]   - d v - > v [ k + 1 ] ; 
 
                                                 t   =   ( w   *   s   +   2   *   c   *   e v _ a r r a y [ k   +   1 ] )   *   s ; / /   t   =   ( w   *   s   + 2   *   c   * e v - > v [ k + 1 ] )   * s ; 
 
                                                 d v _ a r r a y [ k ]   - =   t ; / /   d v - > v [ k ]   - =   t ; 
 
                                                 d v _ a r r a y [ k   +   1 ]   + =   t ; / /   d v - > v [ k + 1 ]   + =   t ; 
 
                                                 i f   ( k   >   j ) 
 
                                                 { 
 
                                                         N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                                         { 
 
                                                                 e v _ a r r a y [ k ]   =   c   *   e v _ a r r a y [ k ]   -   s   *   y ; / /   e v - > v [ k ] =   c   * e v - > v [ k ] -   s   *   y ; 
 
                                                         } 
 
                                                 } 
 
                                                 e v _ a r r a y [ k   +   1 ]   + =   s   *   ( c   *   w   -   2   *   s   *   e v _ a r r a y [ k   +   1 ] ) ; / /   e v - > v [ k + 1 ] + =   s   *   ( c *   w -   2 *   s   * e v - > v [ k + 1 ] ) ; 
 
 
 
                                                 f o r   ( i n t   i   =   0 ;   i   <   d i m ;   i + + ) 
 
                                                 { 
 
                                                         x   =   L _ m [ k ] [ i ] ; / /   x   =   a - > m [ k * d i m + i ] ; 
 
                                                         y   =   L _ m [ k   +   1 ] [ i ] ; / /   y   =   a - > m [ ( k + 1 ) * d i m + i ] ; 
 
                                                         L _ m [ k ] [ i ]   =   c   *   x   -   s   *   y ; / /   a - > m [ k * d i m + i ]   =   c   *   x   -   s *   y ; 
 
                                                         L _ m [ k   +   1 ] [ i ]   =   s   *   x   +   c   *   y ; / /   a - > m [ ( k + 1 ) * d i m + i ]   =   s *   x   +   c   *   y ; 
 
                                                 } 
 
                                                 i f   ( k   <   h   -   1 ) 
 
                                                 { 
 
                                                         N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                                         { 
 
                                                                 x   =   e v _ a r r a y [ k   +   1 ] ; / /   x   =   e v - > v [ k + 1 ] ; 
 
                                                                 y   =   - s   *   e v _ a r r a y [ k   +   2 ] ; / /   y   =   - s   *   e v - > v [ k + 2 ] ; 
 
                                                                 e v _ a r r a y [ k   +   2 ]   * =   c ; / /   e v - > v [ k + 2 ]   * =   c ; 
 
                                                         } 
 
                                                 } 
 
                                         } 
 
                                 }   w h i l e   ( M a t h . A b s ( e v _ a r r a y [ h ] )   >   P C A _ E P S 
 
                                                 *   ( M a t h . A b s ( d v _ a r r a y [ h   -   1 ] )   +   M a t h . A b s ( d v _ a r r a y [ h ] ) ) ) ; 
 
                         } 
 
                         f o r   ( i n t   k   =   0 ;   k   <   d i m   -   1 ;   k + + ) 
 
                         { 
 
                                 i n t   h   =   k ; 
 
                                 t   =   d v _ a r r a y [ h ] ; / /   t   =   d v - > v [ h ] ; 
 
                                 f o r   ( i n t   i   =   k   +   1 ;   i   <   d i m ;   i + + ) 
 
                                 { 
 
                                         i f   ( d v _ a r r a y [ i ]   >   t ) 
 
                                         { / /   i f (   d v - > v [ i ]   >   t   )   { 
 
                                                 h   =   i ; 
 
                                                 t   =   d v _ a r r a y [ h ] ; / /   t   =   d v - > v [ h ] ; 
 
                                         } 
 
                                 } 
 
                                 d v _ a r r a y [ h ]   =   d v _ a r r a y [ k ] ; / /   d v - > v [ h ]   =   d v - > v [ k ] ; 
 
                                 d v _ a r r a y [ k ]   =   t ; / /   d v - > v [ k ]   =   t ; 
 
                                 t h i s . f l i p R o w ( h ,   k ) ; 
 
                         } 
 
                 } 
 
                 / * * 
 
                   *  0LRn0F0a00c[W0_0Rn0$P0eQ0fH0~0Y00
 
                   *   @ p a r a m   i _ r o w _ 1 
 
                   *   eQ0fH00LjuS1 
 
                   *   @ p a r a m   i _ r o w _ 2 
 
                   *   eQ0fH00LjuS2 
 
                   * / 
 
                 p r i v a t e   v o i d   f l i p R o w ( i n t   i _ r o w _ 1 ,   i n t   i _ r o w _ 2 ) 
 
                 { 
 
                         i n t   i ; 
 
                         d o u b l e   w ; 
 
                         d o u b l e [ ]   r 1   =   t h i s . _ m [ i _ r o w _ 1 ] ,   r 2   =   t h i s . _ m [ i _ r o w _ 2 ] ; 
 
                         / /   F o r 	YfO K 
 
                         f o r   ( i   =   c l m   -   1 ;   i   > =   0 ;   i - - ) 
 
                         { 
 
                                 w   =   r 1 [ i ] ; 
 
                                 r 1 [ i ]   =   r 2 [ i ] ; 
 
                                 r 2 [ i ]   =   w ; 
 
                         } 
 
                 } 
 
                 p r i v a t e   N y A R V e c   w k _ v e c T r i d i a g o n a l i z e _ v e c   =   n e w   N y A R V e c ( 0 ) ; 
 
                 p r i v a t e   N y A R V e c   w k _ v e c T r i d i a g o n a l i z e _ v e c 2   =   n e w   N y A R V e c ( 0 ) ; 
 
 
 
                 / * * 
 
                   *   A R T o o l K i t n00a r V e c T r i d i a g o n a l i z e peh0TI{j0peg0Y00
 
                   *   s0}o0
Nfg0Y00
 
                   *   @ p a r a m   d 
 
                   *   
Nf
 
                   *   @ p a r a m   e 
 
                   *   
Nf
 
                   *   @ p a r a m   i _ e _ s t a r t 
 
                   *   o{YR( 0O00K00j0D0Q0i0a r V e c T r i d i a g o n a l i z e n0|Ts0QW0CQg0j00K0W0f00) 
 
                   *   @ 
 
                   * / 
 
                 p r i v a t e   v o i d   v e c T r i d i a g o n a l i z e ( N y A R V e c   d ,   N y A R V e c   e ,   i n t   i _ e _ s t a r t ) 
 
                 { 
 
                         N y A R V e c   v e c   =   w k _ v e c T r i d i a g o n a l i z e _ v e c ; 
 
                         / /   d o u b l e [ ] [ ]   a _ a r r a y = a . g e t A r r a y ( ) ; 
 
                         d o u b l e   s ,   t ,   p ,   q ; 
 
                         i n t   d i m ; 
 
 
 
                         i f   ( t h i s . c l m   ! =   t h i s . r o w ) 
 
                         { / /   i f ( a . g e t C l m ( ) ! = a . g e t R o w ( ) ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( t h i s . c l m   ! =   d . g e t C l m ( ) ) 
 
                         { / /   i f ( a . g e t C l m ( )   ! =   d . c l m ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         i f   ( t h i s . c l m   ! =   e . g e t C l m ( ) ) 
 
                         { / /   i f ( a . g e t C l m ( )   ! =   e . c l m ) { 
 
                                 t h r o w   n e w   N y A R E x c e p t i o n ( ) ; 
 
                         } 
 
                         d i m   =   t h i s . g e t C l m ( ) ; 
 
 
 
                         d o u b l e [ ]   d _ v e c ,   e _ v e c ; 
 
                         d _ v e c   =   d . g e t A r r a y ( ) ; 
 
                         e _ v e c   =   e . g e t A r r a y ( ) ; 
 
                         d o u b l e [ ]   a _ v e c _ k ; 
 
 
 
                         f o r   ( i n t   k   =   0 ;   k   <   d i m   -   2 ;   k + + ) 
 
                         { 
 
 
 
                                 a _ v e c _ k   =   t h i s . _ m [ k ] ; 
 
                                 v e c . s e t N e w A r r a y ( a _ v e c _ k ,   c l m ) ; / /   v e c = t h i s . g e t R o w V e c ( k ) ; / / d o u b l e [ ] 
 
                                 / /   v e c _ a r r a y = v e c . g e t A r r a y ( ) ; 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                 d _ v e c [ k ]   =   a _ v e c _ k [ k ] ; / /   d . v [ k ] = v e c . v [ k ] ; / / d . s e t ( k , v . g e t ( k ) ) ; 
 
                                 / /   / / d - > v [ k ]   =   v [ k ] ; 
 
 
 
                                 / /   w v 1 . c l m   =   d i m - k - 1 ; 
 
                                 / /   w v 1 . v   =   & ( v [ k + 1 ] ) ; 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                 e _ v e c [ k   +   i _ e _ s t a r t ]   =   v e c . v e c H o u s e h o l d ( k   +   1 ) ; / /   e . v [ k + i _ e _ s t a r t ] = v e c . v e c H o u s e h o l d ( k + 1 ) ; / / e - > v [ k ] =   a r V e c H o u s e h o l d ( & w v 1 ) ; 
 
                                 i f   ( e _ v e c [ k   +   i _ e _ s t a r t ]   = =   0 . 0 ) 
 
                                 { / /   i f ( e . v [ k + i _ e _ s t a r t ] = =   0 . 0 ) { / / i f ( e . v [ k + i _ e _ s t a r t ] = =   0 . 0 ) { 
 
                                         c o n t i n u e ; 
 
                                 } 
 
 
 
                                 f o r   ( i n t   i   =   k   +   1 ;   i   <   d i m ;   i + + ) 
 
                                 { 
 
                                         s   =   0 . 0 ; 
 
                                         f o r   ( i n t   j   =   k   +   1 ;   j   <   i ;   j + + ) 
 
                                         { 
 
                                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                                 s   + =   t h i s . _ m [ j ] [ i ]   *   a _ v e c _ k [ j ] ; / /   s   + =   a _ a r r a y [ j ] [ i ]   * v e c . v [ j ] ; / / s   + = a . g e t ( j * d i m + i )   * v . g e t ( j ) ; / / s   + = a - > m [ j * d i m + i ]   *   v [ j ] ; 
 
                                         } 
 
                                         f o r   ( i n t   j   =   i ;   j   <   d i m ;   j + + ) 
 
                                         { 
 
                                                 N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                                 s   + =   t h i s . _ m [ i ] [ j ]   *   a _ v e c _ k [ j ] ; / /   s   + =   a _ a r r a y [ i ] [ j ]   * v e c . v [ j ] ; / / s   + = a . g e t ( i * d i m + j )   * v . g e t ( j ) ; / / s   + = a - > m [ i * d i m + j ]   *   v [ j ] ; 
 
                                         } 
 
                                         N y A R E x c e p t i o n . t r a p ( " *g0000n000" ) ; 
 
                                         d _ v e c [ i ]   =   s ; / /   d . v [ i ] = s ; / / d - > v [ i ]   =   s ; 
 
                                 } 
 
 
 
                                 / /   w v 1 . c l m   =   w v 2 . c l m   =   d i m - k - 1 ; 
 
                                 / /   w v 1 . v   =   & ( v [ k + 1 ] ) ; 
 
                                 / /   w v 2 . v   =   & ( d - > v [ k + 1 ] ) ; 
 
                                 a _ v e c _ k   =   t h i s . _ m [ k ] ; 
 
                                 v e c . s e t N e w A r r a y ( a _ v e c _ k ,   c l m ) ; / /   v e c = t h i s . g e t R o w V e c ( k ) ; 
 
                                 / /   v e c _ a r r a y = v e c . g e t A r r a y ( ) ; 
 
                                 N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                 t   =   v e c . v e c I n n e r p r o d u c t ( d ,   k   +   1 )   /   2 ; 
 
                                 f o r   ( i n t   i   =   d i m   -   1 ;   i   >   k ;   i - - ) 
 
                                 { 
 
                                         N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                         p   =   a _ v e c _ k [ i ] ; / /   p   =   v . g e t ( i ) ; / / p   =   v [ i ] ; 
 
                                         d _ v e c [ i ]   - =   t   *   p ; 
 
                                         q   =   d _ v e c [ i ] ; / /   d . v [ i ] - = t * p ; q = d . v [ i ] ; / / q   =   d - > v [ i ]   - =   t * p 
 
                                         f o r   ( i n t   j   =   i ;   j   <   d i m ;   j + + ) 
 
                                         { 
 
                                                 N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                                 t h i s . _ m [ i ] [ j ]   - =   p   *   ( d _ v e c [ j ]   +   q   *   a _ v e c _ k [ j ] ) ; / /   a . m [ i ] [ j ] - = p * ( d . v [ j ]   + q * v e c . v [ j ] ) ; / / a - > m [ i * d i m + j ]   - = p * ( d - > v [ j ] )   +   q * v [ j ] ; 
 
                                         } 
 
                                 } 
 
                         } 
 
 
 
                         i f   ( d i m   > =   2 ) 
 
                         { 
 
                                 d _ v e c [ d i m   -   2 ]   =   t h i s . _ m [ d i m   -   2 ] [ d i m   -   2 ] ; / /   d . v [ d i m - 2 ] = a . m [ d i m - 2 ] [ d i m - 2 ] ; / / d - > v [ d i m - 2 ] = a - > m [ ( d i m - 2 ) * d i m + ( d i m - 2 ) ] ; 
 
                                 e _ v e c [ d i m   -   2   +   i _ e _ s t a r t ]   =   t h i s . _ m [ d i m   -   2 ] [ d i m   -   1 ] ; / /   e . v [ d i m - 2 + i _ e _ s t a r t ] = a . m [ d i m - 2 ] [ d i m - 1 ] ; / / e - > v [ d i m - 2 ]   =   a - > m [ ( d i m - 2 ) * d i m + ( d i m - 1 ) ] ; 
 
                         } 
 
 
 
                         i f   ( d i m   > =   1 ) 
 
                         { 
 
                                 d _ v e c [ d i m   -   1 ]   =   t h i s . _ m [ d i m   -   1 ] [ d i m   -   1 ] ; / /   d . v [ d i m - 1 ] = a _ a r r a y [ d i m - 1 ] [ d i m - 1 ] ; / / d - > v [ d i m - 1 ]   = a - > m [ ( d i m - 1 ) * d i m + ( d i m - 1 ) ] ; 
 
                         } 
 
                         N y A R V e c   v e c 2   =   t h i s . w k _ v e c T r i d i a g o n a l i z e _ v e c 2 ; 
 
                         f o r   ( i n t   k   =   d i m   -   1 ;   k   > =   0 ;   k - - ) 
 
                         { 
 
                                 a _ v e c _ k   =   t h i s . _ m [ k ] ; 
 
                                 v e c . s e t N e w A r r a y ( a _ v e c _ k ,   c l m ) ; / /   v e c = t h i s . g e t R o w V e c ( k ) ; / / v   = a . g e t P o i n t e r ( k * d i m ) ; / / v   =   & ( a - > m [ k * d i m ] ) ; 
 
                                 i f   ( k   <   d i m   -   2 ) 
 
                                 { 
 
                                         f o r   ( i n t   i   =   k   +   1 ;   i   <   d i m ;   i + + ) 
 
                                         { 
 
                                                 / /   w v 1 . c l m   =   w v 2 . c l m   =   d i m - k - 1 ; 
 
                                                 / /   w v 1 . v   =   & ( v [ k + 1 ] ) ; 
 
                                                 / /   w v 2 . v   =   & ( a - > m [ i * d i m + k + 1 ] ) ; 
 
                                                 v e c 2 . s e t N e w A r r a y ( t h i s . _ m [ i ] ,   c l m ) ; / /   v e c 2 = t h i s . g e t R o w V e c ( i ) ; 
 
 
 
                                                 t   =   v e c . v e c I n n e r p r o d u c t ( v e c 2 ,   k   +   1 ) ; 
 
                                                 f o r   ( i n t   j   =   k   +   1 ;   j   <   d i m ;   j + + ) 
 
                                                 { 
 
                                                         N y A R E x c e p t i o n . t r a p ( " *g000000" ) ; 
 
                                                         t h i s . _ m [ i ] [ j ]   - =   t   *   a _ v e c _ k [ j ] ; / /   a _ a r r a y [ i ] [ j ] - = t * v e c . v [ j ] ; / / a . s u b V a l u e ( i * d i m + j , t * v . g e t ( j ) ) ; / / a - > m [ i * d i m + j ] - =   t   *   v [ j ] ; 
 
                                                 } 
 
                                         } 
 
                                 } 
 
                                 f o r   ( i n t   i   =   0 ;   i   <   d i m ;   i + + ) 
 
                                 { 
 
                                         a _ v e c _ k [ i ]   =   0 . 0 ; / /   v . s e t ( i , 0 . 0 ) ; / / v [ i ]   =   0 . 0 ; 
 
                                 } 
 
                                 a _ v e c _ k [ k ]   =   1 ; / /   v . s e t ( k , 1 ) ; / / v [ k ]   =   1 ; 
 
                         } 
 
                         r e t u r n ; 
 
                 } 
 
         } 
 
 } 