81 pastix_complex64_t alpha,
82 const pastix_complex64_t *A,
84 pastix_complex64_t beta,
85 pastix_complex64_t *B,
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 * conj(A[LDA*i]);
133 for (j=0; j<N; j++, A++) {
134 for(i=0; i<M; i++, B++) {
135 *B = beta * (*B) + alpha * conj(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);
247 const pastix_complex64_t *L,
248 pastix_complex64_t *Cl,
249 const pastix_complex64_t *U,
250 pastix_complex64_t *Cu )
257 const pastix_complex64_t *ga;
258 pastix_complex64_t *gb;
268 for (iterblok = firstblok; iterblok < lastblok; iterblok++) {
273 assert( fblok < cblk2[1].fblokptr );
BEGIN_C_DECLS typedef int pastix_int_t
int core_zgeadd(pastix_trans_t trans, pastix_int_t M, pastix_int_t N, pastix_complex64_t alpha, const pastix_complex64_t *A, pastix_int_t LDA, pastix_complex64_t beta, pastix_complex64_t *B, pastix_int_t LDB)
Add two matrices together.
int cpucblk_zgeaddsp1d(const SolverCblk *cblk1, SolverCblk *cblk2, const pastix_complex64_t *L, pastix_complex64_t *Cl, const pastix_complex64_t *U, pastix_complex64_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.