PLearn 0.1
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | Private Member Functions
PLearn::DatedJoinVMatrix Class Reference

#include <DatedJoinVMatrix.h>

Inheritance diagram for PLearn::DatedJoinVMatrix:
Inheritance graph
[legend]
Collaboration diagram for PLearn::DatedJoinVMatrix:
Collaboration graph
[legend]

List of all members.

Public Types

typedef hash_multimap< Array
< real >, int
Maptype

Public Member Functions

 DatedJoinVMatrix ()
virtual void build ()
 Simply calls inherited::build() then build_().
virtual void makeDeepCopyFromShallowCopy (CopiesMap &copies)
 Transforms a shallow copy into a deep copy.
virtual string classname () const
virtual OptionListgetOptionList () const
virtual OptionMapgetOptionMap () const
virtual RemoteMethodMapgetRemoteMethodMap () const
virtual DatedJoinVMatrixdeepCopy (CopiesMap &copies) const

Static Public Member Functions

static string _classname_ ()
 Declares name and deepCopy methods.
static OptionList_getOptionList_ ()
static RemoteMethodMap_getRemoteMethodMap_ ()
static Object_new_instance_for_typemap_ ()
static bool _isa_ (const Object *o)
static void _static_initialize_ ()
static const PPathdeclaringFile ()

Public Attributes

VMat master
VMat slave
TVec< intmaster_key_indices
TVec< intslave_key_indices
TVec< string > master_key_names
TVec< string > slave_key_names
TVec< intslave_field_indices
TVec< string > slave_field_names
TVec< intmaster_field_indices
TVec< string > master_field_names
int master_date_field_index
string master_date_field_name
int slave_date_interval_start_field_index
int slave_date_interval_end_field_index
string slave_date_interval_start_field_name
string slave_date_interval_end_field_name
int verbosity
bool output_the_slave
bool output_matching_index

Static Public Attributes

static StaticInitializer _static_initializer_

Protected Member Functions

virtual void getNewRow (int i, const Vec &v) const
 This is the only method requiring implementation.

Static Protected Member Functions

static void declareOptions (OptionList &ol)
 Declares this class' options.

Protected Attributes

Vec slave_row
Vec master_row
Array< realkey
Maptype mp
TVec< intmaster2slave
TVec< list< int > > slave2master
int n_master_fields
int n_slave_fields

Private Types

typedef RowBufferedVMatrix inherited

Private Member Functions

void build_ ()
 This does the actual building.

Detailed Description

Definition at line 53 of file DatedJoinVMatrix.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

PLearn::DatedJoinVMatrix::DatedJoinVMatrix ( )

Member Function Documentation

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.

bool PLearn::DatedJoinVMatrix::_isa_ ( const Object o) [static]

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_().

Here is the call graph for this function:

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);
        }
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

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);
}

Here is the call graph for this function:

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.

void PLearn::DatedJoinVMatrix::getNewRow ( int  i,
const Vec v 
) const [protected, virtual]

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);

}

Here is the call graph for this function:

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]

Member Data Documentation

Reimplemented from PLearn::RowBufferedVMatrix.

Definition at line 132 of file DatedJoinVMatrix.h.

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().

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().

Definition at line 66 of file DatedJoinVMatrix.h.

Referenced by build_(), and getNewRow().

Definition at line 68 of file DatedJoinVMatrix.h.

Referenced by build_().

Definition at line 71 of file DatedJoinVMatrix.h.

Referenced by build_(), and getNewRow().

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().

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().

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().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines