| 49 | }; |
| 50 | |
| 51 | template<typename V> SArray<V> SlotReader::value(int slot_id) const { |
| 52 | SArray<V> val; |
| 53 | if (nnzEle(slot_id) == 0) return val; |
| 54 | for (int i = 0; i < data_.file_size(); ++i) { |
| 55 | string file = cacheName(ithFile(data_, i), slot_id) + ".value"; |
| 56 | SArray<char> comp; CHECK(comp.readFromFile(file)); |
| 57 | SArray<float> uncomp; uncomp.uncompressFrom(comp); |
| 58 | size_t n = val.size(); |
| 59 | val.resize(n+uncomp.size()); |
| 60 | for (size_t i = 0; i < uncomp.size(); ++i) val[n+i] = uncomp[i]; |
| 61 | } |
| 62 | CHECK_EQ(val.size(), nnzEle(slot_id)) << slot_id; |
| 63 | return val; |
| 64 | } |
| 65 | |
| 66 | } // namespace PS |