STK++ 0.9.13
STK::hidden::CopySubArrayImpl< Array, Type > Struct Template Reference

This structure regroup the methods to used for copying part of an array in a Block or a Panel. More...

#include <STK_ProductRaw.h>

Static Public Member Functions

static void arrayToBlock (Array const &m, Block< Type > &block, int iRow, int jCol)
 copy a part of an Array in a Block
 
static void arrayToBlock (Array const &m, Block< Type > &block, int iRow, int jCol, int bSize)
 copy a part of an Array in a Block with block columns size given
 
static void arrayToPanel (Array const &m, Panel< Type > &panel, int iRow, int jCol)
 copy a part of an array in a Panel
 
static void arrayToPanel (Array const &rhs, Panel< Type > &panel, int iRow, int jCol, int pSize)
 copy a part of an array in a panel with Panel columns size given
 
static void arrayToBlockByCol (Array const &m, Block< Type > &block, int iRow, int jCol)
 default dimensions
 
static void arrayToBlockByCol (Array const &m, Block< Type > &block, int iRow, int jCol, int bSize)
 with block size given
 
static void arrayToPanelByCol (Array const &m, Panel< Type > &panel, int iRow, int kPos)
 default dimensions
 
static void arrayToPanelByCol (Array const &m, Panel< Type > &panel, int iRow, int kPos, int pSize)
 with panel size dimension given
 

Detailed Description

template<typename Array, typename Type = typename Array::Type>
struct STK::hidden::CopySubArrayImpl< Array, Type >

This structure regroup the methods to used for copying part of an array in a Block or a Panel.

Definition at line 454 of file STK_ProductRaw.h.

Member Function Documentation

◆ arrayToBlock() [1/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToBlock ( Array const m,
Block< Type > &  block,
int  iRow,
int  jCol 
)
inlinestatic

copy a part of an Array in a Block

Definition at line 457 of file STK_ProductRaw.h.

458 {
459 block[0] = m.elt(iRow , jCol);
460 block[1] = m.elt(iRow , jCol+1);
461 block[2] = m.elt(iRow , jCol+2);
462 block[3] = m.elt(iRow , jCol+3);
463 block[4] = m.elt(iRow+1, jCol);
464 block[5] = m.elt(iRow+1, jCol+1);
465 block[6] = m.elt(iRow+1, jCol+2);
466 block[7] = m.elt(iRow+1, jCol+3);
467 block[8] = m.elt(iRow+2, jCol);
468 block[9] = m.elt(iRow+2, jCol+1);
469 block[10] = m.elt(iRow+2, jCol+2);
470 block[11] = m.elt(iRow+2, jCol+3);
471 block[12] = m.elt(iRow+3, jCol);
472 block[13] = m.elt(iRow+3, jCol+1);
473 block[14] = m.elt(iRow+3, jCol+2);
474 block[15] = m.elt(iRow+3, jCol+3);
475 }

Referenced by STK::hidden::BlockByPanel< Lhs, Rhs, Result >::run().

◆ arrayToBlock() [2/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToBlock ( Array const m,
Block< Type > &  block,
int  iRow,
int  jCol,
int  bSize 
)
inlinestatic

copy a part of an Array in a Block with block columns size given

Definition at line 477 of file STK_ProductRaw.h.

478 {
479 for (int i=0; i<bSize; ++i)
480 {
481 block[i*blockSize_ ] = m.elt(iRow+i, jCol);
482 block[i*blockSize_+1] = m.elt(iRow+i, jCol+1);
483 block[i*blockSize_+2] = m.elt(iRow+i, jCol+2);
484 block[i*blockSize_+3] = m.elt(iRow+i, jCol+3);
485 }
486 }
const int blockSize_

References STK::blockSize_.

◆ arrayToBlockByCol() [1/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToBlockByCol ( Array const m,
Block< Type > &  block,
int  iRow,
int  jCol 
)
inlinestatic

default dimensions

Definition at line 510 of file STK_ProductRaw.h.

511 {
512 block[0] = m.elt(iRow , jCol);
513 block[1] = m.elt(iRow+1, jCol);
514 block[2] = m.elt(iRow+2, jCol);
515 block[3] = m.elt(iRow+3, jCol);
516 block[4] = m.elt(iRow , jCol+1);
517 block[5] = m.elt(iRow+1, jCol+1);
518 block[6] = m.elt(iRow+2, jCol+1);
519 block[7] = m.elt(iRow+3, jCol+1);
520 block[8] = m.elt(iRow , jCol+2);
521 block[9] = m.elt(iRow+1, jCol+2);
522 block[10] = m.elt(iRow+2, jCol+2);
523 block[11] = m.elt(iRow+3, jCol+2);
524 block[12] = m.elt(iRow , jCol+3);
525 block[13] = m.elt(iRow+1, jCol+3);
526 block[14] = m.elt(iRow+2, jCol+3);
527 block[15] = m.elt(iRow+3, jCol+3);
528 }

Referenced by STK::hidden::PanelByBlock< Lhs, Rhs, Result >::run().

◆ arrayToBlockByCol() [2/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToBlockByCol ( Array const m,
Block< Type > &  block,
int  iRow,
int  jCol,
int  bSize 
)
inlinestatic

with block size given

Definition at line 530 of file STK_ProductRaw.h.

531 {
532 for (int j=0; j<bSize; ++j)
533 {
534 block[j*blockSize_ ] = m.elt(iRow, jCol+j);
535 block[j*blockSize_+1] = m.elt(iRow+1, jCol+j);
536 block[j*blockSize_+2] = m.elt(iRow+2, jCol+j);
537 block[j*blockSize_+3] = m.elt(iRow+3, jCol+j);
538 }
539 }

References STK::blockSize_.

◆ arrayToPanel() [1/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToPanel ( Array const m,
Panel< Type > &  panel,
int  iRow,
int  jCol 
)
inlinestatic

copy a part of an array in a Panel

Definition at line 488 of file STK_ProductRaw.h.

489 {
490 for (int j=0; j<panelSize_; ++j)
491 {
492 panel[j*blockSize_ ] = m.elt(iRow , jCol+j);
493 panel[j*blockSize_+1] = m.elt(iRow+1, jCol+j);
494 panel[j*blockSize_+2] = m.elt(iRow+2, jCol+j);
495 panel[j*blockSize_+3] = m.elt(iRow+3, jCol+j);
496 }
497 }
const int panelSize_

References STK::blockSize_, and STK::panelSize_.

Referenced by STK::hidden::BlockByPanel< Lhs, Rhs, Result >::run().

◆ arrayToPanel() [2/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToPanel ( Array const rhs,
Panel< Type > &  panel,
int  iRow,
int  jCol,
int  pSize 
)
inlinestatic

copy a part of an array in a panel with Panel columns size given

Definition at line 499 of file STK_ProductRaw.h.

500 {
501 for (int j=0; j<pSize; ++j)
502 {
503 panel[j*blockSize_ ] = rhs.elt(iRow , jCol+j);
504 panel[j*blockSize_+1] = rhs.elt(iRow+1, jCol+j);
505 panel[j*blockSize_+2] = rhs.elt(iRow+2, jCol+j);
506 panel[j*blockSize_+3] = rhs.elt(iRow+3, jCol+j);
507 }
508 }

References STK::blockSize_.

◆ arrayToPanelByCol() [1/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToPanelByCol ( Array const m,
Panel< Type > &  panel,
int  iRow,
int  kPos 
)
inlinestatic

default dimensions

Definition at line 541 of file STK_ProductRaw.h.

542 {
543 for (int i=0; i<panelSize_; ++i)
544 {
545 panel[i*blockSize_ ] = m.elt(iRow+i,kPos);
546 panel[i*blockSize_+1] = m.elt(iRow+i,kPos+1);
547 panel[i*blockSize_+2] = m.elt(iRow+i,kPos+2);
548 panel[i*blockSize_+3] = m.elt(iRow+i,kPos+3);
549 }
550 }

References STK::blockSize_, and STK::panelSize_.

Referenced by STK::hidden::PanelByBlock< Lhs, Rhs, Result >::run().

◆ arrayToPanelByCol() [2/2]

template<typename Array , typename Type = typename Array::Type>
static void STK::hidden::CopySubArrayImpl< Array, Type >::arrayToPanelByCol ( Array const m,
Panel< Type > &  panel,
int  iRow,
int  kPos,
int  pSize 
)
inlinestatic

with panel size dimension given

Definition at line 552 of file STK_ProductRaw.h.

553 {
554 for (int i=0; i<pSize; ++i)
555 {
556 panel[i*blockSize_ ] = m.elt(iRow+i, kPos);
557 panel[i*blockSize_+1] = m.elt(iRow+i, kPos+1);
558 panel[i*blockSize_+2] = m.elt(iRow+i, kPos+2);
559 panel[i*blockSize_+3] = m.elt(iRow+i, kPos+3);
560 }
561 }

References STK::blockSize_.


The documentation for this struct was generated from the following file: