Lines Matching full:blocks
24 * 1. All blocks have the same number of rows and columns, called block size
39 * Here each block has its own dimensions. The only restriction is that all the blocks
47 * setBlockSize() for fixed-size blocks or setBlockLayout for variable-size blocks.
142 // Wrapper to iterate over all blocks
336 // should we allow copying between variable-size blocks and fixed-size blocks ??
337 eigen_assert(m_blockSize == BlockSize && " CAN NOT COPY BETWEEN FIXED-SIZE AND VARIABLE-SIZE BLOCKS");
401 * either setBlockLayout() (matrices with variable-size blocks)
402 * or setBlockSize() (for fixed-size blocks).
414 // First, compute the number of nonzero blocks and their locations
418 std::vector<bool> nzblocksFlag(m_innerBSize,false); // Record the existing blocks
431 // Compute the total number of nonzeros (including explicit zeros in blocks)
455 while(bi > m_indices[m_outerIndex[bj]+idx]) ++idx; // Not expensive for ordered blocks
459 // Offset from all blocks before ...
466 // All blocks before
490 * either setBlockLayout() (matrices with variable-size blocks)
491 * or setBlockSize() (for fixed-size blocks).
511 //First, copy and save the indices of nonzero blocks
521 // Now, fill block indices and (eventually) pointers to blocks
528 // There is no blockPtr for fixed-size blocks... not needed !???
536 * \brief Set the number of rows and columns blocks
547 * Call this only for fixed-size blocks
558 * So this function should be used only for blocks with variable size.
567 eigen_assert(m_innerBSize == innerBlocks.size() && "CHECK THE NUMBER OF ROW OR COLUMN BLOCKS");
568 eigen_assert(m_outerBSize == outerBlocks.size() && "CHECK THE NUMBER OF ROW OR COLUMN BLOCKS");
570 // starting index of blocks... cumulative sums
587 * \brief Allocate the internal array of pointers to blocks and their inner indices
589 * \note For fixed-size blocks, call setBlockSize() to set the block.
590 * And For variable-size blocks, call setBlockLayout() before using this function
592 * \param nonzerosblocks Number of nonzero blocks. The total number of nonzeros is
593 * is computed in setBlockLayout() for variable-size blocks
626 * \note For fixed-size blocks, call setBlockSize() before this function.
633 eigen_assert((m_innerBSize!=0 && m_outerBSize !=0) && "ZERO BLOCKS, PLEASE CALL resize() before");
642 /* Count the number of rows and column blocks,
643 * and the number of nonzero blocks per outer dimension
648 VectorXi nzblock_outer(m_outerBSize); // Number of nz blocks per outer vector
649 VectorXi nz_outer(m_outerBSize); // Number of nz per outer vector...for variable-size blocks
661 "NON CORRESPONDING SIZES FOR ROW BLOCKS");
663 "NON CORRESPONDING SIZES FOR COLUMN BLOCKS");
764 /** \returns the number of rows grouped by blocks */
769 /** \returns the number of columns grouped by blocks */
859 /** \returns the number of nonzero blocks */
861 /** \returns the total number of nonzero elements, including eventual explicit zeros in blocks */
962 Index m_nonzerosblocks; // Total nonzeros blocks (lower than m_innerBSize x m_outerBSize)
965 StorageIndex *m_blockPtr; // Pointer to the beginning of each block in m_values, size m_nonzeroblocks ... null for fixed-size blocks
968 Index m_blockSize; // Size of a block for fixed-size blocks, otherwise -1
1070 BlockInnerIterator itb; // Iterator through the blocks