nl_tokens: ( public ) gcd ( this a ) ( HAC 14 . 54 )
pl_tokens: function bnGCD ( a ) { var x = ( this . s < 0 ) ? this . negate ( ) : this . <mask> ( ) var y = ( a . s < 0 ) ? a . negate ( ) : a . clone ( ) if ( x . compareTo ( y ) < 0 ) { var t = x x = y y = t } var i = x . getLowestSetBit ( ) , g = y . getLowestSetBit ( ) if ( g < 0 ) return x if ( i < g ) g = i if ( g > 0 ) { x . rShiftTo ( g , x ) y . rShiftTo ( g , y ) } while ( x . signum ( ) > 0 ) { if ( ( i = x . getLowestSetBit ( ) ) > 0 ) x . rShiftTo ( i , x ) if ( ( i = y . getLowestSetBit ( ) ) > 0 ) y . rShiftTo ( i , y ) if ( x . compareTo ( y ) >= 0 ) { x . subTo ( y , x ) x . rShiftTo ( 1 , x ) } else { y . subTo ( x , y ) y . rShiftTo ( 1 , y ) } } if ( g > 0 ) y . lShiftTo ( g , y ) return y }