public PseudoRandomExpr(Shape shape, PseudoRandomType type, Distribution distribution, ulong seed, ulong offset, string opCode = OpCodes.Random) { OpCode = opCode; Shape = shape; Seed = seed; Distribution = distribution; Offset = offset; Type = type; }
public static Expr <T> RandomUniform <T>(double from, double to, Shape shape = null, ulong?seed = null, ulong offset = 0UL, PseudoRandomType type = PseudoRandomType.Default) { seed = seed ?? ((ulong)DateTime.Now.Ticks); var width = (to - from).AsScalar <T>(); var origin = from.AsScalar <T>(); var prngExpr = new PseudoRandomExpr <T>(shape, type, new UniformDistribution(), seed.Value, offset); return(origin + width * prngExpr); }
public override Generator CreateRandomGenerator(PseudoRandomType type) { switch (type) { case PseudoRandomType.Default: return(Alea.cuRAND.Generator.CreateCpu(RngType.PSEUDO_DEFAULT)); default: throw new ArgumentOutOfRangeException(); } }
public override Generator CreateRandomGenerator(PseudoRandomType type) { Generator rng; switch (type) { case PseudoRandomType.Default: rng = Generator.CreateGpu(Gpu, RngType.PSEUDO_DEFAULT); break; default: throw new ArgumentOutOfRangeException(); } rng.SetStream(Stream); return(rng); }
public static Expr <T> RandomNormal <T>(Shape shape = null, ulong?seed = null, ulong offset = 0UL, double mean = 0.0, double stddev = 1.0, PseudoRandomType type = PseudoRandomType.Default) { seed = seed ?? ((ulong)DateTime.Now.Ticks); return(new PseudoRandomExpr <T>(shape, type, new NormalDistribution(mean, stddev), seed.Value, offset)); }
public static Expr <T> RandomUniform <T>(Shape shape = null, ulong?seed = null, ulong offset = 0UL, PseudoRandomType type = PseudoRandomType.Default) { seed = seed ?? ((ulong)DateTime.Now.Ticks); return(new PseudoRandomExpr <T>(shape, type, new UniformDistribution(), seed.Value, offset)); }
public Alea.cuRAND.Generator GetRandomGenerator(PseudoRandomType type) { return(_pseudoRandomGenerators.GetOrAdd(type, CreateRandomGenerator)); }
public abstract Alea.cuRAND.Generator CreateRandomGenerator(PseudoRandomType type);