#include <CGAL/basic.h>
#include <CGAL/IO/io.h>
#include <CGAL/Algebraic_structure_traits.h>
template< 
typename NT > NT 
unit_part(
const NT& x);
 
template< typename NT > 
template< typename NT > 
template< typename NT >
    
    if (x == 0 ) return NT(1);
    typedef typename AST::Algebraic_category Algebraic_category; 
    return unit_part_(x,Algebraic_category());
}
template< typename NT >
    
}
template< typename NT >
    
    
    return x;
}
int main(){
    
    std::cout<< 
"int:    unit_part(-3  ): " << 
unit_part(-3  ) << std::endl;
    
    std::cout<< 
"double: unit_part(-3.0): " << 
unit_part(-3.0) << std::endl;
    return 0;
}