void SialPrinterForTests::do_print_block(const BlockId& id, Block::BlockPtr block, int line_number){ int MAX_TO_PRINT = 1024; int size = block->size(); int OUTPUT_ROW_SIZE = block->shape().segment_sizes_[0]; double* data = block->get_data(); out_.precision(14); out_.setf(std::ios_base::fixed); out_ << line_number << ": "; if (size == 1) { out_ << "printing " << id.str(sip_tables_) << " = "; out_ << *(data); } else { out_ << "printing " << (size < MAX_TO_PRINT?size:MAX_TO_PRINT); out_ << " of " <<size << " elements of block " << id.str(sip_tables_);//BlockId2String(id); out_ << " in the order stored in memory "; int i; for (i = 0; i < size && i < MAX_TO_PRINT; ++i){ if (i%OUTPUT_ROW_SIZE == 0) out_ << std::endl; out_ << *(data+i) << " "; } if (i == MAX_TO_PRINT){ out_ << "...."; } } out_ << std::endl; }
void SialPrinterForTests::do_print_contiguous(int array_slot, Block::BlockPtr block, int line_number){ int MAX_TO_PRINT = 1024; int size = block->size(); int OUTPUT_ROW_SIZE = block->shape().segment_sizes_[0]; double* data = block->get_data(); out_ << line_number << ": "; out_ << "printing " << (size < MAX_TO_PRINT?size:MAX_TO_PRINT); out_ << " of " <<size << " elements of contiguous array " << sip_tables_.array_name(array_slot); out_ << " in the order stored in memory "; int i; for (i = 0; i < size && i < MAX_TO_PRINT; ++i){ if (i%OUTPUT_ROW_SIZE == 0) out_ << std::endl; out_.width(14); out_ << *(data+i) << " "; } if (i == MAX_TO_PRINT){ out_ << "...."; } out_ << std::endl; }
Block::BlockPtr ContiguousArrayManager::insert_contiguous_array(int array_id, Block::BlockPtr block_ptr) { sip::check(block_ptr != NULL && block_ptr->get_data() != NULL, "Trying to insert null block_ptr or null block into contiguous array manager\n"); ContiguousArrayMap::iterator it = contiguous_array_map_.find(array_id); if (it != contiguous_array_map_.end()){ delete it->second; it->second = NULL; contiguous_array_map_.erase(it); } contiguous_array_map_[array_id] = block_ptr; SIP_LOG( std::cout<<"Contiguous Block of array "<<sip_tables_.array_name(array_id)<<std::endl); sip::check( block_ptr->shape() == sip_tables_.contiguous_array_shape(array_id), std::string("array ") + sip_tables_.array_name(array_id) + std::string( "shape inconsistent in Sial program and inserted array ")); return block_ptr; }