diff --git a/sstruct_matrix_vector/HYPRE_sstruct_mv.h b/sstruct_matrix_vector/HYPRE_sstruct_mv.h index e63b71aa0..c79cfe1c9 100644 --- a/sstruct_matrix_vector/HYPRE_sstruct_mv.h +++ b/sstruct_matrix_vector/HYPRE_sstruct_mv.h @@ -590,8 +590,7 @@ int HYPRE_SStructVectorInitialize(HYPRE_SStructVector vector); * * If the vector is complex, then {\tt value} consists of a pair of * doubles representing the real and imaginary parts of the complex - * value. NOTE: To implement this, the type of {\tt value} will have - * to be changed. + * value. * * @param param [IN] ... * @@ -601,7 +600,7 @@ int HYPRE_SStructVectorSetValues(HYPRE_SStructVector vector, int part, int *index, int var, - double value); + double *value); /** * Set vector coefficients a box at a time. @@ -633,8 +632,7 @@ int HYPRE_SStructVectorSetBoxValues(HYPRE_SStructVector vector, * * If the vector is complex, then {\tt value} consists of a pair of * doubles representing the real and imaginary parts of the complex - * value. NOTE: To implement this, the type of {\tt value} will have - * to be changed. + * value. * * @param param [IN] ... * @@ -644,7 +642,7 @@ int HYPRE_SStructVectorAddToValues(HYPRE_SStructVector vector, int part, int *index, int var, - double value); + double *value); /** * Set vector coefficients a box at a time. diff --git a/sstruct_matrix_vector/HYPRE_sstruct_vector.c b/sstruct_matrix_vector/HYPRE_sstruct_vector.c index f3e9edc22..04117af09 100644 --- a/sstruct_matrix_vector/HYPRE_sstruct_vector.c +++ b/sstruct_matrix_vector/HYPRE_sstruct_vector.c @@ -122,7 +122,7 @@ HYPRE_SStructVectorSetValues( HYPRE_SStructVector vector, int part, int *index, int var, - double value ) + double *value ) { int ierr = 0; int ndim = hypre_SStructVectorNDim(vector); @@ -177,7 +177,7 @@ HYPRE_SStructVectorAddToValues( HYPRE_SStructVector vector, int part, int *index, int var, - double value ) + double *value ) { int ierr = 0; int ndim = hypre_SStructVectorNDim(vector); diff --git a/sstruct_matrix_vector/sstruct_matrix_vector.h b/sstruct_matrix_vector/sstruct_matrix_vector.h index 747c31405..a0759cbb2 100644 --- a/sstruct_matrix_vector/sstruct_matrix_vector.h +++ b/sstruct_matrix_vector/sstruct_matrix_vector.h @@ -630,6 +630,8 @@ int HYPRE_SStructMatrixAddToValues( HYPRE_SStructMatrix matrix , int part , int int HYPRE_SStructMatrixAddToBoxValues( HYPRE_SStructMatrix matrix , int part , int *ilower , int *iupper , int var , int nentries , int *entries , double *values ); int HYPRE_SStructMatrixAssemble( HYPRE_SStructMatrix matrix ); int HYPRE_SStructMatrixSetSymmetric( HYPRE_SStructMatrix matrix , int symmetric ); +int HYPRE_SStructMatrixSetObjectType( HYPRE_SStructMatrix matrix , int type ); +int HYPRE_SStructMatrixGetObject( HYPRE_SStructMatrix matrix , void **object ); int HYPRE_SStructMatrixPrint( char *filename , HYPRE_SStructMatrix matrix , int all ); /* HYPRE_sstruct_stencil.c */ @@ -641,14 +643,16 @@ int HYPRE_SStructStencilSetEntry( HYPRE_SStructStencil stencil , int entry , int int HYPRE_SStructVectorCreate( MPI_Comm comm , HYPRE_SStructGrid grid , HYPRE_SStructVector *vector_ptr ); int HYPRE_SStructVectorDestroy( HYPRE_SStructVector vector ); int HYPRE_SStructVectorInitialize( HYPRE_SStructVector vector ); -int HYPRE_SStructVectorSetValues( HYPRE_SStructVector vector , int part , int *index , int var , double value ); +int HYPRE_SStructVectorSetValues( HYPRE_SStructVector vector , int part , int *index , int var , double *value ); int HYPRE_SStructVectorSetBoxValues( HYPRE_SStructVector vector , int part , int *ilower , int *iupper , int var , double *values ); -int HYPRE_SStructVectorAddToValues( HYPRE_SStructVector vector , int part , int *index , int var , double value ); +int HYPRE_SStructVectorAddToValues( HYPRE_SStructVector vector , int part , int *index , int var , double *value ); int HYPRE_SStructVectorAddToBoxValues( HYPRE_SStructVector vector , int part , int *ilower , int *iupper , int var , double *values ); int HYPRE_SStructVectorAssemble( HYPRE_SStructVector vector ); int HYPRE_SStructVectorGather( HYPRE_SStructVector vector ); int HYPRE_SStructVectorGetValues( HYPRE_SStructVector vector , int part , int *index , int var , double *value ); int HYPRE_SStructVectorGetBoxValues( HYPRE_SStructVector vector , int part , int *ilower , int *iupper , int var , double *values ); +int HYPRE_SStructVectorSetObjectType( HYPRE_SStructVector vector , int type ); +int HYPRE_SStructVectorGetObject( HYPRE_SStructVector vector , void **object ); int HYPRE_SStructVectorPrint( char *filename , HYPRE_SStructVector vector , int all ); /* sstruct_axpy.c */ @@ -716,7 +720,7 @@ int hypre_SStructStencilRef( hypre_SStructStencil *stencil , hypre_SStructStenci int hypre_SStructPVectorCreate( MPI_Comm comm , hypre_SStructPGrid *pgrid , hypre_SStructPVector **pvector_ptr ); int hypre_SStructPVectorDestroy( hypre_SStructPVector *pvector ); int hypre_SStructPVectorInitialize( hypre_SStructPVector *pvector ); -int hypre_SStructPVectorSetValues( hypre_SStructPVector *pvector , hypre_Index index , int var , double value , int add_to ); +int hypre_SStructPVectorSetValues( hypre_SStructPVector *pvector , hypre_Index index , int var , double *value , int add_to ); int hypre_SStructPVectorSetBoxValues( hypre_SStructPVector *pvector , hypre_Index ilower , hypre_Index iupper , int var , double *values , int add_to ); int hypre_SStructPVectorAssemble( hypre_SStructPVector *pvector ); int hypre_SStructPVectorGather( hypre_SStructPVector *pvector ); diff --git a/sstruct_matrix_vector/sstruct_vector.c b/sstruct_matrix_vector/sstruct_vector.c index 8edf11190..2c1e23a98 100644 --- a/sstruct_matrix_vector/sstruct_vector.c +++ b/sstruct_matrix_vector/sstruct_vector.c @@ -120,13 +120,13 @@ int hypre_SStructPVectorSetValues( hypre_SStructPVector *pvector, hypre_Index index, int var, - double value, + double *value, int add_to ) { int ierr = 0; hypre_StructVector *svector = hypre_SStructPVectorSVector(pvector, var); - ierr = hypre_StructVectorSetValues(svector, index, value, add_to); + ierr = hypre_StructVectorSetValues(svector, index, *value, add_to); return ierr; } diff --git a/sstruct_mv/HYPRE_sstruct_mv.h b/sstruct_mv/HYPRE_sstruct_mv.h index e63b71aa0..c79cfe1c9 100644 --- a/sstruct_mv/HYPRE_sstruct_mv.h +++ b/sstruct_mv/HYPRE_sstruct_mv.h @@ -590,8 +590,7 @@ int HYPRE_SStructVectorInitialize(HYPRE_SStructVector vector); * * If the vector is complex, then {\tt value} consists of a pair of * doubles representing the real and imaginary parts of the complex - * value. NOTE: To implement this, the type of {\tt value} will have - * to be changed. + * value. * * @param param [IN] ... * @@ -601,7 +600,7 @@ int HYPRE_SStructVectorSetValues(HYPRE_SStructVector vector, int part, int *index, int var, - double value); + double *value); /** * Set vector coefficients a box at a time. @@ -633,8 +632,7 @@ int HYPRE_SStructVectorSetBoxValues(HYPRE_SStructVector vector, * * If the vector is complex, then {\tt value} consists of a pair of * doubles representing the real and imaginary parts of the complex - * value. NOTE: To implement this, the type of {\tt value} will have - * to be changed. + * value. * * @param param [IN] ... * @@ -644,7 +642,7 @@ int HYPRE_SStructVectorAddToValues(HYPRE_SStructVector vector, int part, int *index, int var, - double value); + double *value); /** * Set vector coefficients a box at a time. diff --git a/sstruct_mv/HYPRE_sstruct_vector.c b/sstruct_mv/HYPRE_sstruct_vector.c index f3e9edc22..04117af09 100644 --- a/sstruct_mv/HYPRE_sstruct_vector.c +++ b/sstruct_mv/HYPRE_sstruct_vector.c @@ -122,7 +122,7 @@ HYPRE_SStructVectorSetValues( HYPRE_SStructVector vector, int part, int *index, int var, - double value ) + double *value ) { int ierr = 0; int ndim = hypre_SStructVectorNDim(vector); @@ -177,7 +177,7 @@ HYPRE_SStructVectorAddToValues( HYPRE_SStructVector vector, int part, int *index, int var, - double value ) + double *value ) { int ierr = 0; int ndim = hypre_SStructVectorNDim(vector); diff --git a/sstruct_mv/sstruct_mv.h b/sstruct_mv/sstruct_mv.h index 747c31405..a0759cbb2 100644 --- a/sstruct_mv/sstruct_mv.h +++ b/sstruct_mv/sstruct_mv.h @@ -630,6 +630,8 @@ int HYPRE_SStructMatrixAddToValues( HYPRE_SStructMatrix matrix , int part , int int HYPRE_SStructMatrixAddToBoxValues( HYPRE_SStructMatrix matrix , int part , int *ilower , int *iupper , int var , int nentries , int *entries , double *values ); int HYPRE_SStructMatrixAssemble( HYPRE_SStructMatrix matrix ); int HYPRE_SStructMatrixSetSymmetric( HYPRE_SStructMatrix matrix , int symmetric ); +int HYPRE_SStructMatrixSetObjectType( HYPRE_SStructMatrix matrix , int type ); +int HYPRE_SStructMatrixGetObject( HYPRE_SStructMatrix matrix , void **object ); int HYPRE_SStructMatrixPrint( char *filename , HYPRE_SStructMatrix matrix , int all ); /* HYPRE_sstruct_stencil.c */ @@ -641,14 +643,16 @@ int HYPRE_SStructStencilSetEntry( HYPRE_SStructStencil stencil , int entry , int int HYPRE_SStructVectorCreate( MPI_Comm comm , HYPRE_SStructGrid grid , HYPRE_SStructVector *vector_ptr ); int HYPRE_SStructVectorDestroy( HYPRE_SStructVector vector ); int HYPRE_SStructVectorInitialize( HYPRE_SStructVector vector ); -int HYPRE_SStructVectorSetValues( HYPRE_SStructVector vector , int part , int *index , int var , double value ); +int HYPRE_SStructVectorSetValues( HYPRE_SStructVector vector , int part , int *index , int var , double *value ); int HYPRE_SStructVectorSetBoxValues( HYPRE_SStructVector vector , int part , int *ilower , int *iupper , int var , double *values ); -int HYPRE_SStructVectorAddToValues( HYPRE_SStructVector vector , int part , int *index , int var , double value ); +int HYPRE_SStructVectorAddToValues( HYPRE_SStructVector vector , int part , int *index , int var , double *value ); int HYPRE_SStructVectorAddToBoxValues( HYPRE_SStructVector vector , int part , int *ilower , int *iupper , int var , double *values ); int HYPRE_SStructVectorAssemble( HYPRE_SStructVector vector ); int HYPRE_SStructVectorGather( HYPRE_SStructVector vector ); int HYPRE_SStructVectorGetValues( HYPRE_SStructVector vector , int part , int *index , int var , double *value ); int HYPRE_SStructVectorGetBoxValues( HYPRE_SStructVector vector , int part , int *ilower , int *iupper , int var , double *values ); +int HYPRE_SStructVectorSetObjectType( HYPRE_SStructVector vector , int type ); +int HYPRE_SStructVectorGetObject( HYPRE_SStructVector vector , void **object ); int HYPRE_SStructVectorPrint( char *filename , HYPRE_SStructVector vector , int all ); /* sstruct_axpy.c */ @@ -716,7 +720,7 @@ int hypre_SStructStencilRef( hypre_SStructStencil *stencil , hypre_SStructStenci int hypre_SStructPVectorCreate( MPI_Comm comm , hypre_SStructPGrid *pgrid , hypre_SStructPVector **pvector_ptr ); int hypre_SStructPVectorDestroy( hypre_SStructPVector *pvector ); int hypre_SStructPVectorInitialize( hypre_SStructPVector *pvector ); -int hypre_SStructPVectorSetValues( hypre_SStructPVector *pvector , hypre_Index index , int var , double value , int add_to ); +int hypre_SStructPVectorSetValues( hypre_SStructPVector *pvector , hypre_Index index , int var , double *value , int add_to ); int hypre_SStructPVectorSetBoxValues( hypre_SStructPVector *pvector , hypre_Index ilower , hypre_Index iupper , int var , double *values , int add_to ); int hypre_SStructPVectorAssemble( hypre_SStructPVector *pvector ); int hypre_SStructPVectorGather( hypre_SStructPVector *pvector ); diff --git a/sstruct_mv/sstruct_vector.c b/sstruct_mv/sstruct_vector.c index 8edf11190..2c1e23a98 100644 --- a/sstruct_mv/sstruct_vector.c +++ b/sstruct_mv/sstruct_vector.c @@ -120,13 +120,13 @@ int hypre_SStructPVectorSetValues( hypre_SStructPVector *pvector, hypre_Index index, int var, - double value, + double *value, int add_to ) { int ierr = 0; hypre_StructVector *svector = hypre_SStructPVectorSVector(pvector, var); - ierr = hypre_StructVectorSetValues(svector, index, value, add_to); + ierr = hypre_StructVectorSetValues(svector, index, *value, add_to); return ierr; }