FLA_Sqrt.c File Reference

(r)


Functions

FLA_Error FLA_Sqrt (FLA_Obj alpha)
void FLA_F2C() fla_sqrt_f (F_INT *alpha, F_INT *IERROR)

Function Documentation

FLA_Error FLA_Sqrt ( FLA_Obj  alpha  ) 

References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Sqrt_check(), dcomplex::real, and scomplex::real.

Referenced by FLA_Chol_l_unb_var1(), FLA_Chol_l_unb_var2(), FLA_Chol_l_unb_var3(), FLA_Chol_u_unb_var1(), FLA_Chol_u_unb_var2(), FLA_Chol_u_unb_var3(), and fla_sqrt_f().

00036 {
00037   FLA_Datatype datatype;
00038   int          r_val = FLA_SUCCESS;
00039 
00040   if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
00041     FLA_Sqrt_check( alpha );
00042 
00043   datatype = FLA_Obj_datatype( alpha );
00044   
00045   switch ( datatype ){
00046 
00047   case FLA_FLOAT:
00048   {
00049     float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
00050 
00051     if ( *buff_alpha < 0.0F )
00052       r_val = FLA_FAILURE;
00053     else
00054       *buff_alpha = ( float ) sqrt( *buff_alpha );
00055     
00056     break;
00057   }
00058 
00059   case FLA_DOUBLE:
00060   {
00061     double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
00062 
00063     if ( *buff_alpha < 0.0 )
00064       r_val = FLA_FAILURE;
00065     else
00066       *buff_alpha = ( double ) sqrt( *buff_alpha );
00067     
00068     break;
00069   }
00070 
00071   case FLA_COMPLEX:
00072   {
00073     scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
00074 
00075     if ( buff_alpha->real < 0.0F )
00076       r_val = FLA_FAILURE;
00077     else
00078       buff_alpha->real = ( float ) sqrt( buff_alpha->real );
00079     
00080     break;
00081   }
00082 
00083   case FLA_DOUBLE_COMPLEX:
00084   {
00085     dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
00086 
00087     if ( buff_alpha->real < 0.0 )
00088       r_val = FLA_FAILURE;
00089     else
00090       buff_alpha->real = ( double ) sqrt( buff_alpha->real );
00091     
00092     break;
00093   }
00094 
00095   }
00096 
00097   return r_val;
00098 }

void FLA_F2C() fla_sqrt_f ( F_INT *  alpha,
F_INT *  IERROR 
)

References FLA_Sqrt().

00102 {
00103   *IERROR = FLA_Sqrt( *( ( FLA_Obj * ) alpha ) );
00104 }


Generated on Mon Jul 6 05:45:53 2009 for libflame by  doxygen 1.5.9