SegmentSeeker::tracks_seekpoint_t SegmentSeeker::get_seekpoints( matroska_segment_c& ms, mtime_t target_pts, track_ids_t const& priority_tracks ) { struct contains_all_of_t { bool operator()( tracks_seekpoint_t const& haystack, track_ids_t const& track_ids ) { for( track_ids_t::const_iterator it = track_ids.begin(); it != track_ids.end(); ++it ) { if( haystack.find( *it ) == haystack.end() ) return false; } return true; } }; for( mtime_t needle_pts = target_pts; ; ) { seekpoint_pair_t seekpoints = get_seekpoints_around( needle_pts, priority_tracks ); Seekpoint const& start = seekpoints.first; Seekpoint const& end = seekpoints.second; index_range( ms, Range( start.fpos, end.fpos ), needle_pts ); { tracks_seekpoint_t tpoints = find_greatest_seekpoints_in_range( start.fpos, target_pts ); if( contains_all_of_t() ( tpoints, priority_tracks ) ) return tpoints; } needle_pts = start.pts - 1; } vlc_assert_unreachable(); }
void CifarDataSet<M>::read(int itemCount, string path, const bool fine_labels, tensor<float, M>& X, tensor<float, M>& y) { ifstream dataStream; dataStream.open (path.c_str(), ios::binary ); tensor<unsigned char, host_memory_space> data(extents[itemCount][3074]); dataStream.read((char*) data.ptr(), data.size()); assert(dataStream.good()); tensor_view<unsigned char, host_memory_space> coarseLabels_char_view = data[indices[index_range()][index_range(0, 1)]]; tensor_view<unsigned char, host_memory_space> fineLabels_char_view = data[indices[index_range()][index_range(1, 2)]]; tensor_view<unsigned char, host_memory_space> pixels_char_view = data[indices[index_range()][index_range(2, 3074)]]; tensor<unsigned char, host_memory_space> coarseLabels_char = coarseLabels_char_view.copy(); tensor<unsigned char, host_memory_space> fineLabels_char = fineLabels_char_view.copy(); tensor<unsigned char, host_memory_space> pixels_char = pixels_char_view.copy(); tensor<float, host_memory_space> coarseLabels(extents[itemCount][1]); tensor<float, host_memory_space> fineLabels(extents[itemCount][1]); tensor<float, host_memory_space> pixels(extents[itemCount][3072]); convert(coarseLabels, coarseLabels_char); convert(fineLabels, fineLabels_char); convert(pixels, pixels_char); X = pixels.copy(); //cout<<fineLabels<<endl; //cout<<coarseLabels<<endl; y = fine_labels ? fineLabels.copy() : coarseLabels.copy(); dataStream.close(); }
index_range operator+(index shift) const { return index_range(start_ + shift, finish_ + shift, stride_); }
static index_range all() { return index_range(from_start(), to_end(), 1); }