public override Volume <double> SameAs(VolumeStorage <double> example, Shape shape) { if (example is NcwhVolumeStorage <double> ) { return(new Volume(new NcwhVolumeStorage <double>(shape))); } throw new NotImplementedException(); }
public void BuildVolumeFromStorageAndShape() { var shape = new Shape(2, 2); var storage = new VolumeStorage(new[] { 1.0, 2.0, 3.0, 4.0 }, shape, GpuContext.Default); var volume = BuilderInstance <double> .Volume.Build(storage, shape); Assert.IsTrue(storage.ToArray().SequenceEqual(volume.Storage.ToArray())); }
public override Volume <double> Build(VolumeStorage <double> storage, Shape shape) { if (storage is NcwhVolumeStorage <double> ) { return(new Volume(new NcwhVolumeStorage <double>(storage.ToArray(), shape))); } throw new NotImplementedException(); }
public override Volume <float> SameAs(VolumeStorage <float> example, float value, Shape shape) { if (example is NcwhVolumeStorage <float> ) { return(new Volume(new NcwhVolumeStorage <float>(new float[shape.TotalLength].Populate(value), shape))); } throw new NotImplementedException(); }
public override Volume <double> Build(VolumeStorage <double> storage, Shape shape) { if (storage is NcwhVolumeStorage <double> ncwh) { return(new Volume(ncwh.ReShape(shape))); } throw new NotImplementedException(); }
public override Volume <float> Build(VolumeStorage <float> storage, Shape shape) { var ncwh = storage as NcwhVolumeStorage <float>; if (ncwh != null) { return(new Volume(ncwh.ReShape(shape))); } throw new NotImplementedException(); }
public void ClearOnHost() { const int l = 4080; var shape = new Shape(l); var data = new double[l].Populate(1.0); var storage = new VolumeStorage(data, shape, GpuContext.Default); //Clear storage.Clear(); // Copy back to host storage.CopyToHost(); Assert.IsTrue(storage.ToArray().All(o => o == 0.0)); }
public void CopyToHostAndDevice() { const int l = 4080; var shape = new Shape(l); var data = new double[l].Populate(1.0); var storage = new VolumeStorage(data, shape, GpuContext.Default); Assert.IsTrue(data.SequenceEqual(storage.ToArray())); Assert.AreEqual(DataLocation.Host, storage.Location); // Copy to device storage.CopyToDevice(); Assert.AreEqual(DataLocation.Device, storage.Location); // Copy back to host storage.CopyToHost(); Assert.IsTrue(data.SequenceEqual(storage.ToArray())); Assert.AreEqual(DataLocation.Host, storage.Location); }
public Volume(VolumeStorage <double> storage) : base(storage) { }
internal Volume(VolumeStorage <float> storage) : base(storage) { }
internal Volume(VolumeStorage <double> storage) : base(storage) { }
public Volume(VolumeStorage <float> storage) : base(storage) { }