PLearn 0.1
|
#include <DatedJoinVMatrix.h>
Definition at line 53 of file DatedJoinVMatrix.h.
typedef RowBufferedVMatrix PLearn::DatedJoinVMatrix::inherited [private] |
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 55 of file DatedJoinVMatrix.h.
typedef hash_multimap<Array<real>,int > PLearn::DatedJoinVMatrix::Maptype |
Definition at line 58 of file DatedJoinVMatrix.h.
PLearn::DatedJoinVMatrix::DatedJoinVMatrix | ( | ) |
Definition at line 52 of file DatedJoinVMatrix.cc.
:inherited(),master_date_field_index(-1),slave_date_interval_start_field_index(-1), slave_date_interval_end_field_index(-1), verbosity(0), output_the_slave(false), output_matching_index(false) { }
string PLearn::DatedJoinVMatrix::_classname_ | ( | ) | [static] |
Declares name and deepCopy methods.
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 80 of file DatedJoinVMatrix.cc.
OptionList & PLearn::DatedJoinVMatrix::_getOptionList_ | ( | ) | [static] |
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 80 of file DatedJoinVMatrix.cc.
RemoteMethodMap & PLearn::DatedJoinVMatrix::_getRemoteMethodMap_ | ( | ) | [static] |
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 80 of file DatedJoinVMatrix.cc.
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 80 of file DatedJoinVMatrix.cc.
Object * PLearn::DatedJoinVMatrix::_new_instance_for_typemap_ | ( | ) | [static] |
Reimplemented from PLearn::Object.
Definition at line 80 of file DatedJoinVMatrix.cc.
StaticInitializer DatedJoinVMatrix::_static_initializer_ & PLearn::DatedJoinVMatrix::_static_initialize_ | ( | ) | [static] |
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 80 of file DatedJoinVMatrix.cc.
void PLearn::DatedJoinVMatrix::build | ( | ) | [virtual] |
Simply calls inherited::build() then build_().
Reimplemented from PLearn::VMatrix.
Definition at line 480 of file DatedJoinVMatrix.cc.
References PLearn::VMatrix::build(), and build_().
{ inherited::build(); build_(); }
void PLearn::DatedJoinVMatrix::build_ | ( | ) | [private] |
This does the actual building.
Copy the appropriate VMFields
Reimplemented from PLearn::VMatrix.
Definition at line 273 of file DatedJoinVMatrix.cc.
References PLearn::TVec< T >::append(), PLearn::TVec< T >::contains(), PLearn::endl(), PLearn::VMatrix::fieldinfos, PLearn::TVec< T >::fill(), PLearn::float_to_date(), PLearn::VMat::getFieldIndex(), i, j, key, PLearn::VMat::length(), PLearn::TVec< T >::length(), PLearn::VMatrix::length_, master, master2slave, master_date_field_index, master_date_field_name, master_field_indices, master_field_names, master_key_indices, master_key_names, master_row, mp, n_master_fields, n_slave_fields, PLearn::VMField::name, output_matching_index, output_the_slave, PLERROR, PLWARNING, PLearn::TVec< T >::push_back(), PLearn::TVec< T >::resize(), PLearn::TVec< T >::size(), slave, slave2master, slave_date_interval_end_field_index, slave_date_interval_end_field_name, slave_date_interval_start_field_index, slave_date_interval_start_field_name, slave_field_indices, slave_field_names, slave_key_indices, slave_key_names, slave_row, PLearn::VMatrix::updateMtime(), verbosity, PLearn::VMat::width(), and PLearn::VMatrix::width_.
Referenced by build().
{ if (master && slave) // we can't really build if we don't have them { updateMtime(master); updateMtime(slave); // convert field names into indices // * get master key indices if (master_key_names.length()>0) { master_key_indices.resize(master_key_names.length()); for (int i=0;i<master_key_names.length();i++) master_key_indices[i] = master->getFieldIndex(master_key_names[i]); } else if (master_key_indices.length()==0) { if (slave_key_names.length()>0) { master_key_indices.resize(slave_key_names.length()); for (int i=0;i<slave_key_names.length();i++) master_key_indices[i] = master->getFieldIndex(slave_key_names[i]); } else PLERROR("DatedJoinVMatrix: No key names were provided and no master_key_indices were provided!"); } // * get slave key indices if (slave_key_names.length()>0) { slave_key_indices.resize(slave_key_names.length()); for (int i=0;i<slave_key_names.length();i++) slave_key_indices[i] = slave->getFieldIndex(slave_key_names[i]); } else if (slave_key_indices.length()==0) { if (master_key_names.length()>0) { slave_key_indices.resize(master_key_names.length()); for (int i=0;i<master_key_names.length();i++) slave_key_indices[i] = slave->getFieldIndex(master_key_names[i]); } else PLERROR("DatedJoinVMatrix: No key names were provided and no slave_key_indices were provided!"); } // * get slave field indices if (slave_field_names.length()>0) { slave_field_indices.resize(slave_field_names.length()); for (int i=0;i<slave_field_names.length();i++) slave_field_indices[i] = slave->getFieldIndex(slave_field_names[i]); } // * get master field indices if (master_field_names.length()>0) { master_field_indices.resize(master_field_names.length()); for (int i=0;i<master_field_names.length();i++) master_field_indices[i] = master->getFieldIndex(master_field_names[i]); } // * get master date field index if (master_date_field_name!="") master_date_field_index = master->getFieldIndex(master_date_field_name); else if (master_date_field_index<0) PLWARNING("DatedJoinVMatrix: No master_date_field_name was provided and no master_date_field_index was provided!"); // * get slave date interval start field index if (slave_date_interval_start_field_name!="") slave_date_interval_start_field_index = slave->getFieldIndex(slave_date_interval_start_field_name); else if (slave_date_interval_start_field_index<0 && master_date_field_index>=0) PLERROR("DatedJoinVMatrix: No slave_date_interval_start_field_name was provided and no slave_date_interval_start_field_index was provided!"); // * get slave date interval end field index if (slave_date_interval_end_field_name!="") slave_date_interval_end_field_index = slave->getFieldIndex(slave_date_interval_end_field_name); else if (slave_date_interval_end_field_index<0 && master_date_field_index>=0) PLERROR("DatedJoinVMatrix: No slave_date_interval_end_field_name was provided and no slave_date_interval_end_field_index was provided!"); // INDEX THE SLAVE PP<ProgressBar> pb=new ProgressBar("DatedJoinVMatrix: indexing the slave.",slave.length()); key.resize(slave_key_indices.length()); slave_row.resize(slave.width()); master_row.resize(master.width()); for (int i=0;i<slave.length();i++) { slave->getRow(i,slave_row); for (int j=0;j<slave_key_indices.size();j++) key[j] = slave_row[slave_key_indices[j]]; mp.insert(make_pair(key,i)); pb->update(i); } // set the width and the length if (master_field_indices.size()>0) n_master_fields = master_field_indices.size(); else n_master_fields = master->width(); if (slave_field_indices.size()>0) n_slave_fields = slave_field_indices.size(); else n_slave_fields = slave->width(); width_ = output_matching_index + n_master_fields + n_slave_fields; if (output_the_slave) length_ = slave.length(); else length_ = master.length(); fieldinfos.resize(width_); Array<VMField> master_infos = master->getFieldInfos(); Array<VMField> slave_infos = slave->getFieldInfos(); if (output_matching_index) fieldinfos[0].name="matching_index"; if (master_infos.size() > 0) { if (master_field_indices.size()>0) for (int i=0; i<n_master_fields; ++i) fieldinfos[output_matching_index+i] = master_infos[master_field_indices[i]]; else for (int i=0; i<n_master_fields; ++i) fieldinfos[output_matching_index+i] = master_infos[i]; } if (slave_infos.size() > 0) { if (slave_field_indices.size()>0) for (int i=0; i<slave_field_indices.size(); ++i) { VMField f=slave_infos[slave_field_indices[i]]; if ((master_field_indices.size()==0 && master->fieldIndex(f.name)>=0) || master_field_names.contains(f.name)) f.name = "slave." + f.name; fieldinfos[output_matching_index+n_master_fields+i] = f; } else for (int i=0; i<n_slave_fields; ++i) { VMField f=slave_infos[i]; if ((master_field_indices.size()==0 && master->fieldIndex(f.name)>=0) || master_field_names.contains(f.name)) f.name = "slave." + f.name; fieldinfos[output_matching_index+n_master_fields+i] = f; } } pb=new ProgressBar("DatedJoinVMatrix: matching the master and slave.",master->length()); // pre-compute the 'match' (N.B. this is expensive...) master2slave.resize(master->length()); master2slave.fill(-1); slave2master.resize(slave->length()); for (int i=0;i<master->length();i++) { master->getRow(i,master_row); // build a key to search in the slave vmat for (int j=0;j<master_key_indices.size();j++) key[j] = master_row[master_key_indices[j]]; // get the list of matching slave rows Maptype::const_iterator it,low,upp; pair<Maptype::const_iterator,Maptype::const_iterator> matches_it=mp.equal_range(key); low=matches_it.first; upp=matches_it.second; if (low!=mp.end()) { PDate master_date; if (master_date_field_index>=0) master_date = float_to_date(master_row[master_date_field_index]); PDate latest_match; int n_matches=0; static TVec<int> matches; if (verbosity>1) matches.resize(0); int matching_slave_row_index = -1; // iterate over the matching slave rows for (it=low;it!=upp;++it) { slave->getRow(it->second,slave_row); if (master_date_field_index>=0) { PDate slave_date_interval_start = float_to_date(slave_row[slave_date_interval_start_field_index]); PDate slave_date_interval_end = float_to_date(slave_row[slave_date_interval_end_field_index]); if (master_date>slave_date_interval_start && master_date<=slave_date_interval_end) { if (n_matches==0 || slave_date_interval_start > latest_match) { latest_match = slave_date_interval_start; matching_slave_row_index = it->second; } n_matches++; if (verbosity>1) matches.append(it->second); } } else // no date, the LAST one will remain { matching_slave_row_index = it->second; n_matches++; if (verbosity>1) matches.append(it->second); } } if (matching_slave_row_index>=0) { master2slave[i] = matching_slave_row_index; slave2master[matching_slave_row_index].push_back(i); } if (n_matches>1 && verbosity>0) { PLWARNING("DatedJointVMatrix:getRow(%d,.) matched more than once\n",i); if (verbosity >1) for (int j=0;j<n_matches;j++) cerr << "master row " << i << " matched slave row " << matches[j] << endl; } } pb->update(i); } } }
string PLearn::DatedJoinVMatrix::classname | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 80 of file DatedJoinVMatrix.cc.
void PLearn::DatedJoinVMatrix::declareOptions | ( | OptionList & | ol | ) | [static, protected] |
Declares this class' options.
Reimplemented from PLearn::VMatrix.
Definition at line 140 of file DatedJoinVMatrix.cc.
References PLearn::OptionBase::buildoption, PLearn::declareOption(), PLearn::VMatrix::declareOptions(), master, master_date_field_index, master_date_field_name, master_field_indices, master_field_names, master_key_indices, master_key_names, output_matching_index, output_the_slave, slave, slave_date_interval_end_field_index, slave_date_interval_end_field_name, slave_date_interval_start_field_index, slave_date_interval_start_field_name, slave_field_indices, slave_field_names, slave_key_indices, slave_key_names, and verbosity.
{ declareOption(ol, "master", &DatedJoinVMatrix::master, OptionBase::buildoption, "Master vmatrix, whose columns are directly copied in the result."); declareOption(ol, "slave", &DatedJoinVMatrix::slave, OptionBase::buildoption, "Slave vmatrix, of which only some columns are copied, when the\n" "key fields and the dates match."); declareOption(ol, "master_key_indices", &DatedJoinVMatrix::master_key_indices, OptionBase::buildoption, "Indices of the 'key' fields in the master vmatrix. It is not necessary\n" "to specify them if the master_key_names are given or if the slave_key_names\n" "are specified (in that case they are assumed to be the same)\n" ); declareOption(ol, "master_key_names", &DatedJoinVMatrix::master_key_names, OptionBase::buildoption, "Names of the 'key' fields in the master vmatrix. They should not be\n" "specified if the master_key_indices are given directly. If not provided\n" "and if the slave_key_names are specified they are assumed to be the same.\n" ); declareOption(ol, "slave_key_indices", &DatedJoinVMatrix::slave_key_indices, OptionBase::buildoption, "Indices of the 'key' fields in the slave vmatrix. It is not necessary\n" "to specify them if the slave_key_names are given or if the master_key_names\n" "are specified (in that case they are assumed to be the same)\n" ); declareOption(ol, "slave_key_names", &DatedJoinVMatrix::slave_key_names, OptionBase::buildoption, "Names of the 'key' fields in the slave vmatrix. They should not be\n" "specified if the slave_key_indices are given directly. If not provided\n" "and if the master_key_names are specified they are assumed to be the same.\n" ); declareOption(ol, "slave_field_indices", &DatedJoinVMatrix::slave_field_indices, OptionBase::buildoption, "Indices of the fields in the slave vmatrix to be copied in result. It is not necessary\n" "to specify them if the slave_field_names are given.\n" "N.B. IF NEITHER slave_field_indices NOR slave_field_names are given then it is assumed\n" "ALL slave fields should be copied on output.\n" ); declareOption(ol, "slave_field_names", &DatedJoinVMatrix::slave_field_names, OptionBase::buildoption, "Names of the fields in the slave vmatrix to be copied in result. It is not necessary\n" "to specify them if the slave_field_indices are given.\n" "N.B. IF NEITHER slave_field_indices NOR slave_field_names are given then it is assumed\n" "ALL slave fields should be copied on output.\n" ); declareOption(ol, "master_field_indices", &DatedJoinVMatrix::master_field_indices, OptionBase::buildoption, "Indices of the fields in the master vmatrix to be copied in result. It is not necessary\n" "to specify them if the slave_field_names are given.\n" "N.B. IF NEITHER master_field_indices NOR master_field_names are given then it is assumed\n" "ALL master fields should be copied on output.\n" ); declareOption(ol, "master_field_names", &DatedJoinVMatrix::master_field_names, OptionBase::buildoption, "Names of the fields in the slave vmatrix to be copied in result. It is not necessary\n" "to specify them if the slave_field_indices are given.\n" "N.B. IF NEITHER master_field_indices NOR master_field_names are given then it is assumed\n" "ALL master fields should be copied on output.\n" ); declareOption(ol, "master_date_field_index", &DatedJoinVMatrix::master_date_field_index, OptionBase::buildoption, "Index of the date field in the master vmatrix. Should not be specified\n" "if the master_date_field_name is given.\n" ); declareOption(ol, "master_date_field_name", &DatedJoinVMatrix::master_date_field_name, OptionBase::buildoption, "Name of the date field in the master vmatrix. Should not be specified\n" "if the master_date_field_index is given.\n" ); declareOption(ol, "slave_date_interval_start_field_index", &DatedJoinVMatrix::slave_date_interval_start_field_index, OptionBase::buildoption, "Index of the date interval start field in the slave vmatrix.\n" "Should not be specified if the slave_date_interval_start_field_name is given.\n" ); declareOption(ol, "slave_date_interval_start_field_name", &DatedJoinVMatrix::slave_date_interval_start_field_name, OptionBase::buildoption, "Name of the date interval start field in the slave vmatrix.\n" "Should not be specified if the slave_date_interval_start_field_index is given.\n" ); declareOption(ol, "slave_date_interval_end_field_index", &DatedJoinVMatrix::slave_date_interval_end_field_index, OptionBase::buildoption, "Index of the date interval end field in the slave vmatrix.\n" "Should not be specified if the slave_date_interval_end_field_name is given.\n" ); declareOption(ol, "slave_date_interval_end_field_name", &DatedJoinVMatrix::slave_date_interval_end_field_name, OptionBase::buildoption, "Name of the date interval end field in the slave vmatrix.\n" "Should not be specified if the slave_date_interval_end_field_index is given.\n" ); declareOption(ol, "verbosity", &DatedJoinVMatrix::verbosity, OptionBase::buildoption, "0: no warning issued,\n" "1: warning issued if more than one slave row matches,\n" "2: details about these matches are printed\n" ); declareOption(ol, "output_the_slave", &DatedJoinVMatrix::output_the_slave, OptionBase::buildoption, "If true than output the SLAVE rows (with master_fields_* from matching master row)\n" "instead of the MASTER rows (with slave_fields_* from the matching slave row)\n" ); declareOption(ol, "output_matching_index", &DatedJoinVMatrix::output_matching_index, OptionBase::buildoption, "If true than output an extra variable 'matching_index' which contains the row\n" "index of the matching slave row (if !output_the_slave) or matching master row\n" "if (output_the_slave).\n" ); // Now call the parent class' declareOptions inherited::declareOptions(ol); }
static const PPath& PLearn::DatedJoinVMatrix::declaringFile | ( | ) | [inline, static] |
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 132 of file DatedJoinVMatrix.h.
DatedJoinVMatrix * PLearn::DatedJoinVMatrix::deepCopy | ( | CopiesMap & | copies | ) | const [virtual] |
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 80 of file DatedJoinVMatrix.cc.
This is the only method requiring implementation.
Implements PLearn::RowBufferedVMatrix.
Definition at line 82 of file DatedJoinVMatrix.cc.
References PLearn::TVec< T >::begin(), PLearn::TVec< T >::clear(), PLearn::TVec< T >::fill(), i, j, PLearn::TVec< T >::length(), master, master2slave, master_field_indices, master_row, MISSING_VALUE, n_master_fields, n_slave_fields, output_matching_index, output_the_slave, PLERROR, PLearn::TVec< T >::push_back(), PLearn::TVec< T >::size(), slave, slave2master, slave_field_indices, slave_key_indices, slave_row, and PLearn::TVec< T >::subVec().
{ if (!master || !slave || slave_key_indices.length()==0) // etc... PLERROR("DatedJoinVMatrix: object was not build properly!"); list<int> master_index; int slave_index=-1; if (output_the_slave) { slave_index = i; master_index = slave2master[i]; if (output_matching_index) v[0] = *(master_index.begin()); } else { master_index.push_back(i); slave_index = master2slave[i]; if (output_matching_index) v[0] = slave_index; } Vec master_part = v.subVec(output_matching_index,n_master_fields); Vec slave_part = v.subVec(n_master_fields+output_matching_index,n_slave_fields); if (master_index.size()>0) { list<int>::const_iterator b_it = master_index.begin(); list<int>::const_iterator e_it = master_index.end(); master_part.clear(); for (list<int>::const_iterator it=b_it;it!=e_it;++it) { // copy the master fields master->getRow(*it,master_row); if (master_field_indices.size()>0) for (int j=0;j<master_field_indices.size();j++) master_part[j] += master_row[master_field_indices[j]]; else master_part += master_row; } } else master_part.fill(MISSING_VALUE); if (slave_index>=0) { // copy the slave fields slave->getRow(slave_index,slave_row); if (slave_field_indices.size()>0) for (int j=0;j<slave_field_indices.size();j++) slave_part[j] = slave_row[slave_field_indices[j]]; else slave_part << slave_row; } else slave_part.fill(MISSING_VALUE); }
OptionList & PLearn::DatedJoinVMatrix::getOptionList | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 80 of file DatedJoinVMatrix.cc.
OptionMap & PLearn::DatedJoinVMatrix::getOptionMap | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 80 of file DatedJoinVMatrix.cc.
RemoteMethodMap & PLearn::DatedJoinVMatrix::getRemoteMethodMap | ( | ) | const [virtual] |
Reimplemented from PLearn::Object.
Definition at line 80 of file DatedJoinVMatrix.cc.
void PLearn::DatedJoinVMatrix::makeDeepCopyFromShallowCopy | ( | CopiesMap & | copies | ) | [virtual] |
Transforms a shallow copy into a deep copy.
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 486 of file DatedJoinVMatrix.cc.
References PLearn::deepCopyField(), key, PLearn::RowBufferedVMatrix::makeDeepCopyFromShallowCopy(), master, master2slave, master_key_indices, master_key_names, slave, slave2master, slave_field_indices, slave_field_names, slave_key_indices, slave_key_names, and slave_row.
{ inherited::makeDeepCopyFromShallowCopy(copies); deepCopyField(slave_row, copies); deepCopyField(key, copies); deepCopyField(master2slave, copies); deepCopyField(slave2master, copies); deepCopyField(master, copies); deepCopyField(slave, copies); deepCopyField(master_key_indices, copies); deepCopyField(slave_key_indices, copies); deepCopyField(master_key_names, copies); deepCopyField(slave_key_names, copies); deepCopyField(slave_field_indices, copies); deepCopyField(slave_field_names, copies); }
Reimplemented from PLearn::RowBufferedVMatrix.
Definition at line 132 of file DatedJoinVMatrix.h.
Array<real> PLearn::DatedJoinVMatrix::key [protected] |
Definition at line 67 of file DatedJoinVMatrix.h.
Referenced by build_(), and makeDeepCopyFromShallowCopy().
Definition at line 79 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), getNewRow(), and makeDeepCopyFromShallowCopy().
TVec<int> PLearn::DatedJoinVMatrix::master2slave [protected] |
Definition at line 69 of file DatedJoinVMatrix.h.
Referenced by build_(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 88 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 89 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 86 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and getNewRow().
Definition at line 87 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 80 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and makeDeepCopyFromShallowCopy().
Definition at line 82 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and makeDeepCopyFromShallowCopy().
Vec PLearn::DatedJoinVMatrix::master_row [protected] |
Definition at line 66 of file DatedJoinVMatrix.h.
Referenced by build_(), and getNewRow().
Maptype PLearn::DatedJoinVMatrix::mp [protected] |
Definition at line 68 of file DatedJoinVMatrix.h.
Referenced by build_().
int PLearn::DatedJoinVMatrix::n_master_fields [protected] |
Definition at line 71 of file DatedJoinVMatrix.h.
Referenced by build_(), and getNewRow().
int PLearn::DatedJoinVMatrix::n_slave_fields [protected] |
Definition at line 71 of file DatedJoinVMatrix.h.
Referenced by build_(), and getNewRow().
Definition at line 96 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and getNewRow().
Definition at line 95 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and getNewRow().
Definition at line 79 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), getNewRow(), and makeDeepCopyFromShallowCopy().
TVec<list<int> > PLearn::DatedJoinVMatrix::slave2master [protected] |
Definition at line 70 of file DatedJoinVMatrix.h.
Referenced by build_(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 91 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 93 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 90 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 92 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().
Definition at line 84 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 85 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and makeDeepCopyFromShallowCopy().
Definition at line 81 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 83 of file DatedJoinVMatrix.h.
Referenced by build_(), declareOptions(), and makeDeepCopyFromShallowCopy().
Vec PLearn::DatedJoinVMatrix::slave_row [protected] |
Definition at line 66 of file DatedJoinVMatrix.h.
Referenced by build_(), getNewRow(), and makeDeepCopyFromShallowCopy().
Definition at line 94 of file DatedJoinVMatrix.h.
Referenced by build_(), and declareOptions().