diff --git a/base/serial/impl/psb_c_base_vect_impl.F90 b/base/serial/impl/psb_c_base_vect_impl.F90 index de656555a..f17eb582c 100644 --- a/base/serial/impl/psb_c_base_vect_impl.F90 +++ b/base/serial/impl/psb_c_base_vect_impl.F90 @@ -65,8 +65,6 @@ contains this%v = x call this%asb(size(x,kind=psb_ipk_),info) end function constructor - - !> Function constructor: !! \brief Constructor from size @@ -998,7 +996,6 @@ contains end if end function c_base_get_vect - ! ! Reset all values @@ -1031,11 +1028,13 @@ contains #else x%v(first_:last_) = val #endif + ! + ! Should we set as ASSEMBLED? Looks like + ! + call x%set_asb() call x%set_host() end subroutine c_base_set_scal - - ! !> Function base_set_vect @@ -1093,7 +1092,7 @@ contains !! \brief Get one entry from the vector !! ! -module function c_base_get_entry(x, index) result(res) + module function c_base_get_entry(x, index) result(res) implicit none class(psb_c_base_vect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: index @@ -1120,7 +1119,6 @@ module function c_base_get_entry(x, index) result(res) call x%set_host() end if end subroutine c_base_set_entry - ! ! Overwrite with absolute value @@ -1251,7 +1249,6 @@ module function c_base_get_entry(x, index) result(res) call y%axpby(m,alpha,x%v,beta,info) end subroutine c_base_axpby_v - ! ! AXPBY is invoked via Z, hence the structure below. diff --git a/base/serial/impl/psb_d_base_vect_impl.F90 b/base/serial/impl/psb_d_base_vect_impl.F90 index 1b693e5b3..d0d42c8ce 100644 --- a/base/serial/impl/psb_d_base_vect_impl.F90 +++ b/base/serial/impl/psb_d_base_vect_impl.F90 @@ -65,8 +65,6 @@ contains this%v = x call this%asb(size(x,kind=psb_ipk_),info) end function constructor - - !> Function constructor: !! \brief Constructor from size @@ -279,7 +277,6 @@ contains info = 0 if (psb_errstatus_fatal()) return - write(0,*) 'd_base_ins_a: ',n if (try_newins) then if (x%is_bld()) then ncfs_ = x%get_ncfs() @@ -999,7 +996,6 @@ contains end if end function d_base_get_vect - ! ! Reset all values @@ -1024,7 +1020,6 @@ contains if (present(last)) last_ = min(last,last_) if (x%is_dev()) call x%sync() - write(0,*)'d_base%set_scal ',val,first_,last_ #if defined(PSB_OPENMP) !$omp parallel do private(i) do i = first_, last_ @@ -1033,14 +1028,13 @@ contains #else x%v(first_:last_) = val #endif - write(0,*) 'end of set_scal',& - & ((last_-first_+1)/2+first_),& - & x%v((last_-first_+1)/2+first_) + ! + ! Should we set as ASSEMBLED? Looks like + ! + call x%set_asb() call x%set_host() - - end subroutine d_base_set_scal - + end subroutine d_base_set_scal ! !> Function base_set_vect @@ -1105,11 +1099,9 @@ contains real(psb_dpk_) :: res res = dzero - write(0,*) 'base%get_entry ',allocated(x%v),index if (allocated(x%v)) then if (x%is_dev()) call x%sync() res = x%v(index) - write(0,*) 'base%get_entry out',index,res end if end function d_base_get_entry @@ -1127,7 +1119,6 @@ contains call x%set_host() end if end subroutine d_base_set_entry - ! ! Overwrite with absolute value @@ -1258,7 +1249,6 @@ contains call y%axpby(m,alpha,x%v,beta,info) end subroutine d_base_axpby_v - ! ! AXPBY is invoked via Z, hence the structure below. diff --git a/base/serial/impl/psb_i_base_vect_impl.F90 b/base/serial/impl/psb_i_base_vect_impl.F90 index 1c13aef02..07b6a933f 100644 --- a/base/serial/impl/psb_i_base_vect_impl.F90 +++ b/base/serial/impl/psb_i_base_vect_impl.F90 @@ -65,8 +65,6 @@ contains this%v = x call this%asb(size(x,kind=psb_ipk_),info) end function constructor - - !> Function constructor: !! \brief Constructor from size @@ -998,7 +996,6 @@ contains end if end function i_base_get_vect - ! ! Reset all values @@ -1031,11 +1028,13 @@ contains #else x%v(first_:last_) = val #endif + ! + ! Should we set as ASSEMBLED? Looks like + ! + call x%set_asb() call x%set_host() end subroutine i_base_set_scal - - ! !> Function base_set_vect diff --git a/base/serial/impl/psb_l_base_vect_impl.F90 b/base/serial/impl/psb_l_base_vect_impl.F90 index 05905e70e..3864781cd 100644 --- a/base/serial/impl/psb_l_base_vect_impl.F90 +++ b/base/serial/impl/psb_l_base_vect_impl.F90 @@ -65,8 +65,6 @@ contains this%v = x call this%asb(size(x,kind=psb_ipk_),info) end function constructor - - !> Function constructor: !! \brief Constructor from size @@ -998,7 +996,6 @@ contains end if end function l_base_get_vect - ! ! Reset all values @@ -1031,11 +1028,13 @@ contains #else x%v(first_:last_) = val #endif + ! + ! Should we set as ASSEMBLED? Looks like + ! + call x%set_asb() call x%set_host() end subroutine l_base_set_scal - - ! !> Function base_set_vect diff --git a/base/serial/impl/psb_s_base_vect_impl.F90 b/base/serial/impl/psb_s_base_vect_impl.F90 index bbd2f100e..b1a463612 100644 --- a/base/serial/impl/psb_s_base_vect_impl.F90 +++ b/base/serial/impl/psb_s_base_vect_impl.F90 @@ -65,8 +65,6 @@ contains this%v = x call this%asb(size(x,kind=psb_ipk_),info) end function constructor - - !> Function constructor: !! \brief Constructor from size @@ -998,7 +996,6 @@ contains end if end function s_base_get_vect - ! ! Reset all values @@ -1031,11 +1028,13 @@ contains #else x%v(first_:last_) = val #endif + ! + ! Should we set as ASSEMBLED? Looks like + ! + call x%set_asb() call x%set_host() end subroutine s_base_set_scal - - ! !> Function base_set_vect @@ -1093,7 +1092,7 @@ contains !! \brief Get one entry from the vector !! ! -module function s_base_get_entry(x, index) result(res) + module function s_base_get_entry(x, index) result(res) implicit none class(psb_s_base_vect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: index @@ -1120,7 +1119,6 @@ module function s_base_get_entry(x, index) result(res) call x%set_host() end if end subroutine s_base_set_entry - ! ! Overwrite with absolute value @@ -1251,7 +1249,6 @@ module function s_base_get_entry(x, index) result(res) call y%axpby(m,alpha,x%v,beta,info) end subroutine s_base_axpby_v - ! ! AXPBY is invoked via Z, hence the structure below. diff --git a/base/serial/impl/psb_z_base_vect_impl.F90 b/base/serial/impl/psb_z_base_vect_impl.F90 index 4368539ac..384ebcb89 100644 --- a/base/serial/impl/psb_z_base_vect_impl.F90 +++ b/base/serial/impl/psb_z_base_vect_impl.F90 @@ -65,8 +65,6 @@ contains this%v = x call this%asb(size(x,kind=psb_ipk_),info) end function constructor - - !> Function constructor: !! \brief Constructor from size @@ -998,7 +996,6 @@ contains end if end function z_base_get_vect - ! ! Reset all values @@ -1031,11 +1028,13 @@ contains #else x%v(first_:last_) = val #endif + ! + ! Should we set as ASSEMBLED? Looks like + ! + call x%set_asb() call x%set_host() end subroutine z_base_set_scal - - ! !> Function base_set_vect @@ -1093,7 +1092,7 @@ contains !! \brief Get one entry from the vector !! ! -module function z_base_get_entry(x, index) result(res) + module function z_base_get_entry(x, index) result(res) implicit none class(psb_z_base_vect_type), intent(inout) :: x integer(psb_ipk_), intent(in) :: index @@ -1120,7 +1119,6 @@ module function z_base_get_entry(x, index) result(res) call x%set_host() end if end subroutine z_base_set_entry - ! ! Overwrite with absolute value @@ -1251,7 +1249,6 @@ module function z_base_get_entry(x, index) result(res) call y%axpby(m,alpha,x%v,beta,info) end subroutine z_base_axpby_v - ! ! AXPBY is invoked via Z, hence the structure below. diff --git a/cbind/base/psb_c_cbase.h b/cbind/base/psb_c_cbase.h index b6a04d259..96c5ba8aa 100644 --- a/cbind/base/psb_c_cbase.h +++ b/cbind/base/psb_c_cbase.h @@ -21,7 +21,7 @@ psb_i_t psb_c_cvect_get_nrows(psb_c_cvector *xh); psb_c_t *psb_c_cvect_get_cpy(psb_c_cvector *xh); psb_i_t psb_c_cvect_f_get_cpy(psb_c_t *v, psb_c_cvector *xh); psb_i_t psb_c_cvect_zero(psb_c_cvector *xh); -psb_i_t *psb_c_cvect_f_get_pnt(psb_c_cvector *xh); +psb_c_t *psb_c_cvect_f_get_pnt(psb_c_cvector *xh); psb_i_t psb_c_cvect_clone(psb_c_cvector *xh, psb_c_cvector *yh); psb_i_t psb_c_cgeall(psb_c_cvector *xh, psb_c_descriptor *cdh); @@ -35,7 +35,7 @@ psb_i_t psb_c_cgeins_add(psb_i_t nz, const psb_l_t *irw, const psb_c_t *val, psb_i_t psb_c_cgeasb(psb_c_cvector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_cgeasb_options(psb_c_cvector *xh, psb_c_descriptor *cdh, psb_i_t dupl); psb_i_t psb_c_cgeasb_options_format(psb_c_cvector *xh, psb_c_descriptor *cdh, - const char *fmt, psb_i_t dupl); + psb_i_t dupl, const char *fmt); psb_i_t psb_c_cgefree(psb_c_cvector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_cgereinit(psb_c_cvector *xh, psb_c_descriptor *cdh, bool clear); @@ -80,7 +80,7 @@ psb_c_t psb_c_cgedot(psb_c_cvector *xh, psb_c_cvector *yh, psb_c_descriptor *cdh psb_s_t psb_c_cgenrm2(psb_c_cvector *xh, psb_c_descriptor *cdh); psb_s_t psb_c_cgeamax(psb_c_cvector *xh, psb_c_descriptor *cdh); psb_s_t psb_c_cgeasum(psb_c_cvector *xh, psb_c_descriptor *cdh); -psb_s_t psb_c_cgenrmi(psb_c_cspmat *ah, psb_c_descriptor *cdh); +psb_s_t psb_c_cgenrmi(psb_c_cvector *ah, psb_c_descriptor *cdh); psb_i_t psb_c_cgeaxpby(psb_c_t alpha, psb_c_cvector *xh, psb_c_t beta, psb_c_cvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_cgeaxpbyz(psb_c_t alpha, psb_c_cvector *xh, @@ -101,13 +101,16 @@ psb_i_t psb_c_cgediv2(psb_c_cvector *xh,psb_c_cvector *yh,psb_c_cvector *zh,psb_ psb_i_t psb_c_cgediv2_check(psb_c_cvector *xh,psb_c_cvector *yh,psb_c_cvector *zh,psb_c_descriptor *cdh, bool flag); psb_i_t psb_c_cgeinv(psb_c_cvector *xh,psb_c_cvector *yh,psb_c_descriptor *cdh); psb_i_t psb_c_cgeinv_check(psb_c_cvector *xh,psb_c_cvector *yh,psb_c_descriptor *cdh, bool flag); -psb_i_t psb_c_cgeabs(psb_c_cvector *xh,psb_c_cvector *yh,psb_c_cvector *cdh); +psb_i_t psb_c_cgeabs(psb_c_cvector *xh,psb_c_cvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_cgecmp(psb_c_cvector *xh,psb_s_t ch,psb_c_cvector *zh,psb_c_descriptor *cdh); bool psb_c_cgecmpmat(psb_c_cspmat *ah,psb_c_cspmat *bh,psb_s_t tol,psb_c_descriptor *cdh); bool psb_c_cgecmpmat_val(psb_c_cspmat *ah,psb_c_t val,psb_s_t tol,psb_c_descriptor *cdh); psb_i_t psb_c_cgeaddconst(psb_c_cvector *xh,psb_c_t bh,psb_c_cvector *zh,psb_c_descriptor *cdh); psb_s_t psb_c_cgenrm2_weight(psb_c_cvector *xh,psb_c_cvector *wh,psb_c_descriptor *cdh); psb_s_t psb_c_cgenrm2_weightmask(psb_c_cvector *xh,psb_c_cvector *wh,psb_c_cvector *idvh,psb_c_descriptor *cdh); +psb_i_t psb_c_cmask(psb_c_cvector *ch,psb_c_cvector *xh,psb_c_cvector *mh, bool *t, psb_c_descriptor *cdh); +psb_c_t psb_c_cgemin(psb_c_cvector *xh,psb_c_descriptor *cdh); +psb_c_t psb_c_cminquotient(psb_c_cvector *xh,psb_c_cvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_cspscal(psb_c_t alpha, psb_c_cspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_cspscalpid(psb_c_t alpha, psb_c_cspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_cspaxpby(psb_c_t alpha, psb_c_cspmat *ah, psb_c_t beta, psb_c_cspmat *bh, psb_c_descriptor *cdh); diff --git a/cbind/base/psb_c_dbase.h b/cbind/base/psb_c_dbase.h index 174257bd8..c9d798bb3 100644 --- a/cbind/base/psb_c_dbase.h +++ b/cbind/base/psb_c_dbase.h @@ -21,7 +21,7 @@ psb_i_t psb_c_dvect_get_nrows(psb_c_dvector *xh); psb_d_t *psb_c_dvect_get_cpy(psb_c_dvector *xh); psb_i_t psb_c_dvect_f_get_cpy(psb_d_t *v, psb_c_dvector *xh); psb_i_t psb_c_dvect_zero(psb_c_dvector *xh); -psb_i_t *psb_c_dvect_f_get_pnt(psb_c_dvector *xh); +psb_d_t *psb_c_dvect_f_get_pnt(psb_c_dvector *xh); psb_i_t psb_c_dvect_clone(psb_c_dvector *xh, psb_c_dvector *yh); psb_i_t psb_c_dgeall(psb_c_dvector *xh, psb_c_descriptor *cdh); @@ -35,13 +35,13 @@ psb_i_t psb_c_dgeins_add(psb_i_t nz, const psb_l_t *irw, const psb_d_t *val, psb_i_t psb_c_dgeasb(psb_c_dvector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_dgeasb_options(psb_c_dvector *xh, psb_c_descriptor *cdh, psb_i_t dupl); psb_i_t psb_c_dgeasb_options_format(psb_c_dvector *xh, psb_c_descriptor *cdh, - const char *fmt, psb_i_t dupl); + psb_i_t dupl, const char *fmt); psb_i_t psb_c_dgefree(psb_c_dvector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_dgereinit(psb_c_dvector *xh, psb_c_descriptor *cdh, bool clear); psb_d_t psb_c_dgetelem(psb_c_dvector *xh,psb_l_t index,psb_c_descriptor *cd); psb_d_t psb_c_dmatgetelem(psb_c_dspmat *ah,psb_l_t rowindex,psb_l_t colindex,psb_c_descriptor *cdh); -psb_i_t psb_c_dsetelem(psb_l_t index, psb_c_t val, +psb_i_t psb_c_dsetelem(psb_l_t index, psb_d_t val, psb_c_dvector *xh, psb_c_descriptor *cd); @@ -69,18 +69,18 @@ psb_i_t psb_c_dcopy_mat(psb_c_dspmat *ah,psb_c_dspmat *bh,psb_c_descriptor *c psb_i_t psb_c_dsprn(psb_c_dspmat *mh, psb_c_descriptor *cdh, _Bool clear); psb_i_t psb_c_dmat_name_print(psb_c_dspmat *mh, char *name); psb_i_t psb_c_dvect_set_scal(psb_c_dvector *xh, psb_d_t val); -psb_i_t psb_c_dvect_set_scal_bound(psb_c_dvector *xh, psb_c_t val, +psb_i_t psb_c_dvect_set_scal_bound(psb_c_dvector *xh, psb_d_t val, psb_i_t ifirst, psb_i_t ilast); psb_i_t psb_c_dvect_set_vect(psb_c_dvector *xh, psb_d_t *val, psb_i_t n); psb_d_t psb_c_dvect_get_entry(psb_c_dvector *xh, psb_i_t index); -psb_i_t psb_c_dvect_set_entry(psb_c_dvector *xh, psb_i_t index, psb_c_t val); +psb_i_t psb_c_dvect_set_entry(psb_c_dvector *xh, psb_i_t index, psb_d_t val); /* psblas computational routines */ psb_d_t psb_c_dgedot(psb_c_dvector *xh, psb_c_dvector *yh, psb_c_descriptor *cdh); psb_d_t psb_c_dgenrm2(psb_c_dvector *xh, psb_c_descriptor *cdh); psb_d_t psb_c_dgeamax(psb_c_dvector *xh, psb_c_descriptor *cdh); psb_d_t psb_c_dgeasum(psb_c_dvector *xh, psb_c_descriptor *cdh); -psb_d_t psb_c_dgenrmi(psb_c_dspmat *ah, psb_c_descriptor *cdh); +psb_d_t psb_c_dgenrmi(psb_c_dvector *ah, psb_c_descriptor *cdh); psb_i_t psb_c_dgeaxpby(psb_d_t alpha, psb_c_dvector *xh, psb_d_t beta, psb_c_dvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_dgeaxpbyz(psb_d_t alpha, psb_c_dvector *xh, @@ -101,13 +101,16 @@ psb_i_t psb_c_dgediv2(psb_c_dvector *xh,psb_c_dvector *yh,psb_c_dvector *zh,psb_ psb_i_t psb_c_dgediv2_check(psb_c_dvector *xh,psb_c_dvector *yh,psb_c_dvector *zh,psb_c_descriptor *cdh, bool flag); psb_i_t psb_c_dgeinv(psb_c_dvector *xh,psb_c_dvector *yh,psb_c_descriptor *cdh); psb_i_t psb_c_dgeinv_check(psb_c_dvector *xh,psb_c_dvector *yh,psb_c_descriptor *cdh, bool flag); -psb_i_t psb_c_dgeabs(psb_c_dvector *xh,psb_c_dvector *yh,psb_c_dvector *cdh); +psb_i_t psb_c_dgeabs(psb_c_dvector *xh,psb_c_dvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_dgecmp(psb_c_dvector *xh,psb_d_t ch,psb_c_dvector *zh,psb_c_descriptor *cdh); bool psb_c_dgecmpmat(psb_c_dspmat *ah,psb_c_dspmat *bh,psb_d_t tol,psb_c_descriptor *cdh); bool psb_c_dgecmpmat_val(psb_c_dspmat *ah,psb_d_t val,psb_d_t tol,psb_c_descriptor *cdh); psb_i_t psb_c_dgeaddconst(psb_c_dvector *xh,psb_d_t bh,psb_c_dvector *zh,psb_c_descriptor *cdh); psb_d_t psb_c_dgenrm2_weight(psb_c_dvector *xh,psb_c_dvector *wh,psb_c_descriptor *cdh); psb_d_t psb_c_dgenrm2_weightmask(psb_c_dvector *xh,psb_c_dvector *wh,psb_c_dvector *idvh,psb_c_descriptor *cdh); +psb_i_t psb_c_dmask(psb_c_dvector *ch,psb_c_dvector *xh,psb_c_dvector *mh, bool *t, psb_c_descriptor *cdh); +psb_d_t psb_c_dgemin(psb_c_dvector *xh,psb_c_descriptor *cdh); +psb_d_t psb_c_dminquotient(psb_c_dvector *xh,psb_c_dvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_dspscal(psb_d_t alpha, psb_c_dspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_dspscalpid(psb_d_t alpha, psb_c_dspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_dspaxpby(psb_d_t alpha, psb_c_dspmat *ah, psb_d_t beta, psb_c_dspmat *bh, psb_c_descriptor *cdh); diff --git a/cbind/base/psb_c_sbase.h b/cbind/base/psb_c_sbase.h index c50ebc352..3cd60acf8 100644 --- a/cbind/base/psb_c_sbase.h +++ b/cbind/base/psb_c_sbase.h @@ -21,7 +21,7 @@ psb_i_t psb_c_svect_get_nrows(psb_c_svector *xh); psb_s_t *psb_c_svect_get_cpy(psb_c_svector *xh); psb_i_t psb_c_svect_f_get_cpy(psb_s_t *v, psb_c_svector *xh); psb_i_t psb_c_svect_zero(psb_c_svector *xh); -psb_i_t *psb_c_svect_f_get_pnt(psb_c_svector *xh); +psb_s_t *psb_c_svect_f_get_pnt(psb_c_svector *xh); psb_i_t psb_c_svect_clone(psb_c_svector *xh, psb_c_svector *yh); psb_i_t psb_c_sgeall(psb_c_svector *xh, psb_c_descriptor *cdh); @@ -35,13 +35,13 @@ psb_i_t psb_c_sgeins_add(psb_i_t nz, const psb_l_t *irw, const psb_s_t *val, psb_i_t psb_c_sgeasb(psb_c_svector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_sgeasb_options(psb_c_svector *xh, psb_c_descriptor *cdh, psb_i_t dupl); psb_i_t psb_c_sgeasb_options_format(psb_c_svector *xh, psb_c_descriptor *cdh, - const char *fmt, psb_i_t dupl); + psb_i_t dupl, const char *fmt); psb_i_t psb_c_sgefree(psb_c_svector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_sgereinit(psb_c_svector *xh, psb_c_descriptor *cdh, bool clear); psb_s_t psb_c_sgetelem(psb_c_svector *xh,psb_l_t index,psb_c_descriptor *cd); psb_s_t psb_c_smatgetelem(psb_c_sspmat *ah,psb_l_t rowindex,psb_l_t colindex,psb_c_descriptor *cdh); -psb_i_t psb_c_ssetelem(psb_l_t index, psb_c_t val, +psb_i_t psb_c_ssetelem(psb_l_t index, psb_s_t val, psb_c_svector *xh, psb_c_descriptor *cd); @@ -69,18 +69,18 @@ psb_i_t psb_c_scopy_mat(psb_c_sspmat *ah,psb_c_sspmat *bh,psb_c_descriptor *c psb_i_t psb_c_ssprn(psb_c_sspmat *mh, psb_c_descriptor *cdh, _Bool clear); psb_i_t psb_c_smat_name_print(psb_c_sspmat *mh, char *name); psb_i_t psb_c_svect_set_scal(psb_c_svector *xh, psb_s_t val); -psb_i_t psb_c_svect_set_scal_bound(psb_c_svector *xh, psb_c_t val, +psb_i_t psb_c_svect_set_scal_bound(psb_c_svector *xh, psb_s_t val, psb_i_t ifirst, psb_i_t ilast); psb_i_t psb_c_svect_set_vect(psb_c_svector *xh, psb_s_t *val, psb_i_t n); psb_s_t psb_c_svect_get_entry(psb_c_svector *xh, psb_i_t index); -psb_i_t psb_c_svect_set_entry(psb_c_svector *xh, psb_i_t index, psb_c_t val); +psb_i_t psb_c_svect_set_entry(psb_c_svector *xh, psb_i_t index, psb_s_t val); /* psblas computational routines */ psb_s_t psb_c_sgedot(psb_c_svector *xh, psb_c_svector *yh, psb_c_descriptor *cdh); psb_s_t psb_c_sgenrm2(psb_c_svector *xh, psb_c_descriptor *cdh); psb_s_t psb_c_sgeamax(psb_c_svector *xh, psb_c_descriptor *cdh); psb_s_t psb_c_sgeasum(psb_c_svector *xh, psb_c_descriptor *cdh); -psb_s_t psb_c_sgenrmi(psb_c_sspmat *ah, psb_c_descriptor *cdh); +psb_s_t psb_c_sgenrmi(psb_c_svector *ah, psb_c_descriptor *cdh); psb_i_t psb_c_sgeaxpby(psb_s_t alpha, psb_c_svector *xh, psb_s_t beta, psb_c_svector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_sgeaxpbyz(psb_s_t alpha, psb_c_svector *xh, @@ -101,13 +101,16 @@ psb_i_t psb_c_sgediv2(psb_c_svector *xh,psb_c_svector *yh,psb_c_svector *zh,psb_ psb_i_t psb_c_sgediv2_check(psb_c_svector *xh,psb_c_svector *yh,psb_c_svector *zh,psb_c_descriptor *cdh, bool flag); psb_i_t psb_c_sgeinv(psb_c_svector *xh,psb_c_svector *yh,psb_c_descriptor *cdh); psb_i_t psb_c_sgeinv_check(psb_c_svector *xh,psb_c_svector *yh,psb_c_descriptor *cdh, bool flag); -psb_i_t psb_c_sgeabs(psb_c_svector *xh,psb_c_svector *yh,psb_c_svector *cdh); +psb_i_t psb_c_sgeabs(psb_c_svector *xh,psb_c_svector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_sgecmp(psb_c_svector *xh,psb_s_t ch,psb_c_svector *zh,psb_c_descriptor *cdh); bool psb_c_sgecmpmat(psb_c_sspmat *ah,psb_c_sspmat *bh,psb_s_t tol,psb_c_descriptor *cdh); bool psb_c_sgecmpmat_val(psb_c_sspmat *ah,psb_s_t val,psb_s_t tol,psb_c_descriptor *cdh); psb_i_t psb_c_sgeaddconst(psb_c_svector *xh,psb_s_t bh,psb_c_svector *zh,psb_c_descriptor *cdh); psb_s_t psb_c_sgenrm2_weight(psb_c_svector *xh,psb_c_svector *wh,psb_c_descriptor *cdh); psb_s_t psb_c_sgenrm2_weightmask(psb_c_svector *xh,psb_c_svector *wh,psb_c_svector *idvh,psb_c_descriptor *cdh); +psb_i_t psb_c_smask(psb_c_svector *ch,psb_c_svector *xh,psb_c_svector *mh, bool *t, psb_c_descriptor *cdh); +psb_s_t psb_c_sgemin(psb_c_svector *xh,psb_c_descriptor *cdh); +psb_s_t psb_c_sminquotient(psb_c_svector *xh,psb_c_svector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_sspscal(psb_s_t alpha, psb_c_sspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_sspscalpid(psb_s_t alpha, psb_c_sspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_sspaxpby(psb_s_t alpha, psb_c_sspmat *ah, psb_s_t beta, psb_c_sspmat *bh, psb_c_descriptor *cdh); diff --git a/cbind/base/psb_c_zbase.h b/cbind/base/psb_c_zbase.h index b3f49d355..5ba1073e5 100644 --- a/cbind/base/psb_c_zbase.h +++ b/cbind/base/psb_c_zbase.h @@ -21,7 +21,7 @@ psb_i_t psb_c_zvect_get_nrows(psb_c_zvector *xh); psb_z_t *psb_c_zvect_get_cpy(psb_c_zvector *xh); psb_i_t psb_c_zvect_f_get_cpy(psb_z_t *v, psb_c_zvector *xh); psb_i_t psb_c_zvect_zero(psb_c_zvector *xh); -psb_i_t *psb_c_zvect_f_get_pnt(psb_c_zvector *xh); +psb_z_t *psb_c_zvect_f_get_pnt(psb_c_zvector *xh); psb_i_t psb_c_zvect_clone(psb_c_zvector *xh, psb_c_zvector *yh); psb_i_t psb_c_zgeall(psb_c_zvector *xh, psb_c_descriptor *cdh); @@ -35,13 +35,13 @@ psb_i_t psb_c_zgeins_add(psb_i_t nz, const psb_l_t *irw, const psb_z_t *val, psb_i_t psb_c_zgeasb(psb_c_zvector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_zgeasb_options(psb_c_zvector *xh, psb_c_descriptor *cdh, psb_i_t dupl); psb_i_t psb_c_zgeasb_options_format(psb_c_zvector *xh, psb_c_descriptor *cdh, - const char *fmt, psb_i_t dupl); + psb_i_t dupl, const char *fmt); psb_i_t psb_c_zgefree(psb_c_zvector *xh, psb_c_descriptor *cdh); psb_i_t psb_c_zgereinit(psb_c_zvector *xh, psb_c_descriptor *cdh, bool clear); psb_z_t psb_c_zgetelem(psb_c_zvector *xh,psb_l_t index,psb_c_descriptor *cd); psb_z_t psb_c_zmatgetelem(psb_c_zspmat *ah,psb_l_t rowindex,psb_l_t colindex,psb_c_descriptor *cdh); -psb_i_t psb_c_zsetelem(psb_l_t index, psb_c_t val, +psb_i_t psb_c_zsetelem(psb_l_t index, psb_z_t val, psb_c_zvector *xh, psb_c_descriptor *cd); @@ -69,18 +69,18 @@ psb_i_t psb_c_zcopy_mat(psb_c_zspmat *ah,psb_c_zspmat *bh,psb_c_descriptor *c psb_i_t psb_c_zsprn(psb_c_zspmat *mh, psb_c_descriptor *cdh, _Bool clear); psb_i_t psb_c_zmat_name_print(psb_c_zspmat *mh, char *name); psb_i_t psb_c_zvect_set_scal(psb_c_zvector *xh, psb_z_t val); -psb_i_t psb_c_zvect_set_scal_bound(psb_c_zvector *xh, psb_c_t val, +psb_i_t psb_c_zvect_set_scal_bound(psb_c_zvector *xh, psb_z_t val, psb_i_t ifirst, psb_i_t ilast); psb_i_t psb_c_zvect_set_vect(psb_c_zvector *xh, psb_z_t *val, psb_i_t n); psb_z_t psb_c_zvect_get_entry(psb_c_zvector *xh, psb_i_t index); -psb_i_t psb_c_zvect_set_entry(psb_c_zvector *xh, psb_i_t index, psb_c_t val); +psb_i_t psb_c_zvect_set_entry(psb_c_zvector *xh, psb_i_t index, psb_z_t val); /* psblas computational routines */ psb_z_t psb_c_zgedot(psb_c_zvector *xh, psb_c_zvector *yh, psb_c_descriptor *cdh); psb_d_t psb_c_zgenrm2(psb_c_zvector *xh, psb_c_descriptor *cdh); psb_d_t psb_c_zgeamax(psb_c_zvector *xh, psb_c_descriptor *cdh); psb_d_t psb_c_zgeasum(psb_c_zvector *xh, psb_c_descriptor *cdh); -psb_d_t psb_c_zgenrmi(psb_c_zspmat *ah, psb_c_descriptor *cdh); +psb_d_t psb_c_zgenrmi(psb_c_zvector *ah, psb_c_descriptor *cdh); psb_i_t psb_c_zgeaxpby(psb_z_t alpha, psb_c_zvector *xh, psb_z_t beta, psb_c_zvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_zgeaxpbyz(psb_z_t alpha, psb_c_zvector *xh, @@ -101,13 +101,16 @@ psb_i_t psb_c_zgediv2(psb_c_zvector *xh,psb_c_zvector *yh,psb_c_zvector *zh,psb_ psb_i_t psb_c_zgediv2_check(psb_c_zvector *xh,psb_c_zvector *yh,psb_c_zvector *zh,psb_c_descriptor *cdh, bool flag); psb_i_t psb_c_zgeinv(psb_c_zvector *xh,psb_c_zvector *yh,psb_c_descriptor *cdh); psb_i_t psb_c_zgeinv_check(psb_c_zvector *xh,psb_c_zvector *yh,psb_c_descriptor *cdh, bool flag); -psb_i_t psb_c_zgeabs(psb_c_zvector *xh,psb_c_zvector *yh,psb_c_zvector *cdh); +psb_i_t psb_c_zgeabs(psb_c_zvector *xh,psb_c_zvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_zgecmp(psb_c_zvector *xh,psb_d_t ch,psb_c_zvector *zh,psb_c_descriptor *cdh); bool psb_c_zgecmpmat(psb_c_zspmat *ah,psb_c_zspmat *bh,psb_d_t tol,psb_c_descriptor *cdh); bool psb_c_zgecmpmat_val(psb_c_zspmat *ah,psb_z_t val,psb_d_t tol,psb_c_descriptor *cdh); psb_i_t psb_c_zgeaddconst(psb_c_zvector *xh,psb_z_t bh,psb_c_zvector *zh,psb_c_descriptor *cdh); psb_d_t psb_c_zgenrm2_weight(psb_c_zvector *xh,psb_c_zvector *wh,psb_c_descriptor *cdh); psb_d_t psb_c_zgenrm2_weightmask(psb_c_zvector *xh,psb_c_zvector *wh,psb_c_zvector *idvh,psb_c_descriptor *cdh); +psb_i_t psb_c_zmask(psb_c_zvector *ch,psb_c_zvector *xh,psb_c_zvector *mh, bool *t, psb_c_descriptor *cdh); +psb_z_t psb_c_zgemin(psb_c_zvector *xh,psb_c_descriptor *cdh); +psb_z_t psb_c_zminquotient(psb_c_zvector *xh,psb_c_zvector *yh, psb_c_descriptor *cdh); psb_i_t psb_c_zspscal(psb_z_t alpha, psb_c_zspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_zspscalpid(psb_z_t alpha, psb_c_zspmat *ah, psb_c_descriptor *cdh); psb_i_t psb_c_zspaxpby(psb_z_t alpha, psb_c_zspmat *ah, psb_z_t beta, psb_c_zspmat *bh, psb_c_descriptor *cdh);