103 if ( ((trans ==
PastixNoTrans) && (LDA < pastix_imax(1,M)) && (M > 0)) ||
104 ((trans !=
PastixNoTrans) && (LDA < pastix_imax(1,N)) && (N > 0)) )
108 if ( (LDB < pastix_imax(1,M)) && (M > 0) ) {
114 #if defined(PRECISION_z) || defined(PRECISION_c)
116 if ( alpha == 0.0 ) {
117 for (j=0; j<N; j++) {
118 for(i=0; i<M; i++, B++) {
124 else if ( beta == 0.0 ) {
125 for (j=0; j<N; j++, A++) {
126 for(i=0; i<M; i++, B++) {
127 *B = alpha * conjf(A[LDA*i]);
133 for (j=0; j<N; j++, A++) {
134 for(i=0; i<M; i++, B++) {
135 *B = beta * (*B) + alpha * conjf(A[LDA*i]);
144 if ( alpha == 0.0 ) {
145 for (j=0; j<N; j++) {
146 for(i=0; i<M; i++, B++) {
152 else if ( beta == 0.0 ) {
153 for (j=0; j<N; j++, A++) {
154 for(i=0; i<M; i++, B++) {
155 *B = alpha * A[LDA*i];
161 for (j=0; j<N; j++, A++) {
162 for(i=0; i<M; i++, B++) {
163 *B = beta * (*B) + alpha * A[LDA*i];
172 if ( alpha == 0.0 ) {
173 for (j=0; j<N; j++) {
174 for(i=0; i<M; i++, B++) {
180 else if ( beta == 0.0 ) {
181 for (j=0; j<N; j++) {
182 for(i=0; i<M; i++, B++, A++) {
190 for (j=0; j<N; j++) {
191 for(i=0; i<M; i++, B++, A++) {
192 *B = beta * (*B) + alpha * (*A);
268 for (iterblok = firstblok; iterblok < lastblok; iterblok++) {
273 assert( fblok < cblk2[1].fblokptr );
BEGIN_C_DECLS typedef int pastix_int_t
float _Complex pastix_complex32_t
int core_cgeadd(pastix_trans_t trans, pastix_int_t M, pastix_int_t N, pastix_complex32_t alpha, const pastix_complex32_t *A, pastix_int_t LDA, pastix_complex32_t beta, pastix_complex32_t *B, pastix_int_t LDB)
Add two matrices together.
int cpucblk_cgeaddsp1d(const SolverCblk *cblk1, SolverCblk *cblk2, const pastix_complex32_t *L, pastix_complex32_t *Cl, const pastix_complex32_t *U, pastix_complex32_t *Cu)
Add two column blocks together.
enum pastix_trans_e pastix_trans_t
Transpostion.
static int is_block_inside_fblock(const SolverBlok *blok, const SolverBlok *fblok)
Check if a block is included inside another one.
Solver column block structure.