if(features.extent(0)<=_index)throwstd::runtime_error((boost::format("The index %d of this machine is out of range %d")%_index%features.extent(0)).str());
if(features((int)_index)>=_look_up_table.extent(0))throwstd::runtime_error((boost::format("The feature %d at index %d is out of range %d")%features((int)_index)%_index%_look_up_table.extent(0)).str());
if(features.extent(0)<=m_indices(j))throwstd::runtime_error((boost::format("One of the indices %d of this machine is out of range %d")%m_indices(j)%features.extent(0)).str());
if(predictions.extent(0)!=features.extent(0))throwstd::runtime_error((boost::format("The number of predictions must match the number of features, but they don't: %d != %d")%predictions.extent(0)%features.extent(0)).str());
if(features.extent(1)<=_index)throwstd::runtime_error((boost::format("The index %d of this machine is out of range %d")%_index%features.extent(1)).str());
#endif // BOB_DEBUG
for(inti=features.extent(0);i--;){
#ifdef BOB_DEBUG
if(features(i,(int)_index)>=_look_up_table.extent(0))throwstd::runtime_error((boost::format("The feature %d at index %d is out of range %d")%features(i,(int)_index)%_index%_look_up_table.extent(0)).str());
if(predictions.extent(0)!=features.extent(0))throwstd::runtime_error((boost::format("The number of predictions must match the number of features, but they don't: %d != %d")%predictions.extent(0)%features.extent(0)).str());
if(predictions.extent(1)!=m_indices.extent(0))throwstd::runtime_error((boost::format("The size of predictions must match the number of indices, but they don't: %d != %d")%predictions.extent(1)%m_indices.extent(0)).str());
for(intj=m_indices.extent(0);j--;)
if(features.extent(1)<=m_indices(j))throwstd::runtime_error((boost::format("One of the indices %d of this machine is out of range %d")%m_indices(j)%features.extent(1)).str());