libflame  12600
Functions
FLA_Set_diagonal.c File Reference

(r12600)

Functions

FLA_Error FLA_Set_diagonal_vector (FLA_Obj A, FLA_Obj d)
FLA_Error FLA_Set_diagonal_matrix (FLA_Obj d, FLA_Obj A)

Function Documentation

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_min_dim(), FLA_Obj_row_stride(), and FLA_Obj_vector_inc().

{
  FLA_Datatype datatype;
  int          i, m;
  int          rs_A, cs_A;
  int          inc_d;

  datatype = FLA_Obj_datatype( A );

  m        = FLA_Obj_min_dim( A );

  rs_A     = FLA_Obj_row_stride( A );
  cs_A     = FLA_Obj_col_stride( A );

  inc_d    = FLA_Obj_vector_inc( d );

  switch ( datatype )
  {
    case FLA_FLOAT:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( float, FLA_FLOAT_PTR, delta_to_alpha, m );
      break;
    }
    case FLA_DOUBLE:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( double, FLA_DOUBLE_PTR, delta_to_alpha, m );
      break;
    }

    case FLA_COMPLEX:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( scomplex, FLA_COMPLEX_PTR, delta_to_alpha, m );
      break;
    }

    case FLA_DOUBLE_COMPLEX:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( dcomplex, FLA_DOUBLE_COMPLEX_PTR, delta_to_alpha, m );
      break;
    }
  }
  return FLA_SUCCESS;
}

References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_min_dim(), FLA_Obj_row_stride(), and FLA_Obj_vector_inc().

{
  FLA_Datatype datatype;
  int          i, m;
  int          rs_A, cs_A;
  int          inc_d;

  datatype = FLA_Obj_datatype( A );

  m        = FLA_Obj_min_dim( A );

  rs_A     = FLA_Obj_row_stride( A );
  cs_A     = FLA_Obj_col_stride( A );

  inc_d    = FLA_Obj_vector_inc( d );

  switch ( datatype )
  {
    case FLA_FLOAT:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( float, FLA_FLOAT_PTR, alpha_to_delta, m );
      break;
    }
    case FLA_DOUBLE:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( double, FLA_DOUBLE_PTR, alpha_to_delta, m );
      break;
    }

    case FLA_COMPLEX:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( scomplex, FLA_COMPLEX_PTR, alpha_to_delta, m );
      break;
    }

    case FLA_DOUBLE_COMPLEX:
    {
      FLA_OBJ_SET_DIAGONAL_VECTOR( dcomplex, FLA_DOUBLE_COMPLEX_PTR, alpha_to_delta, m );
      break;
    }
  }
  return FLA_SUCCESS;
}