#NEWLINE# def cofactors( f , g ) : #NEWLINE# #INDENT# if ( ( not f ) and ( not g ) ) : #NEWLINE# #INDENT# zero = f . ring . zero #NEWLINE# return ( zero , zero , zero ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( not g ) : #NEWLINE# #INDENT# ( h , cff , cfg ) = f . _gcd_zero ( g ) #NEWLINE# return ( h , cff , cfg ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( not g ) : #NEWLINE# #INDENT# ( h , cfg , cff ) = g . _gcd_zero ( f ) #NEWLINE# return ( h , cff , cfg ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( len ( f ) == 1 ) : #NEWLINE# #INDENT# ( h , cff , cfg ) = f . _gcd_monom ( g ) #NEWLINE# return ( h , cff , cfg ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( len ( g ) == 1 ) : #NEWLINE# #INDENT# ( h , cfg , cff ) = g . _gcd_monom ( f ) #NEWLINE# return ( h , cff , cfg ) #NEWLINE# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# #UNINDENT# ( J , ( f , g ) ) = f . deflate ( g ) #NEWLINE# ( h , cff , cfg ) = f . _gcd ( g ) #NEWLINE# return ( h . inflate ( J ) , cff . inflate ( J ) , cfg . inflate ( J ) )