samplerData . defaultSampler = new ConstantSampler
{
value = constantSampler . value ,
minAllowed = constantSampler . minAllowed ,
maxAllowed = constantSampler . maxAllowed ,
shouldCheckValidRange = constantSampler . shouldCheckValidRange
limits = new Limits {
min = constantSampler . minAllowed ,
max = constantSampler . maxAllowed ,
shouldValidateRange = constantSampler . shouldCheckValidRange
}
} ;
else if ( sampler is Samplers . UniformSampler uniformSampler )
samplerData . defaultSampler = new UniformSampler
minAllowed = uniformSampler . minAllowed ,
maxAllowed = uniformSampler . maxAllowed ,
shouldCheckValidRange = uniformSampler . shouldCheckValidRange
limits = new Limits {
min = uniformSampler . minAllowed ,
max = uniformSampler . maxAllowed ,
shouldValidateRange = uniformSampler . shouldCheckValidRange
}
} ;
else if ( sampler is Samplers . NormalSampler normalSampler )
samplerData . defaultSampler = new NormalSampler
mean = normalSampler . mean ,
stddev = normalSampler . standardDeviation ,
minAllowed = normalSampler . minAllowed ,
maxAllowed = normalSampler . maxAllowed ,
shouldCheckValidRange = normalSampler . shouldCheckValidRange
limits = new Limits {
min = normalSampler . minAllowed ,
max = normalSampler . maxAllowed ,
shouldValidateRange = normalSampler . shouldCheckValidRange
}
} ;
else
throw new ArgumentException ( $"Invalid sampler type ({sampler.GetType()})" ) ;
return new DoubleScalarValue
{
num = Convert . ToDouble ( field . GetValue ( obj ) ) ,
minAllowed = minAllowed ,
maxAllowed = maxAllowed ,
shouldCheckValidRange = shouldCheckValidRange
limits = new Limits {
min = minAllowed ,
max = maxAllowed ,
shouldValidateRange = shouldCheckValidRange
}
} ;
}
return new Samplers . ConstantSampler
{
value = ( float ) constantSampler . value ,
minAllowed = ( float ) constantSampler . minAllowed ,
maxAllowed = ( float ) constantSampler . maxAllowed ,
shouldCheckValidRange = constantSampler . shouldCheck ValidRange
minAllowed = ( float ) constantSampler . limits . min ,
maxAllowed = ( float ) constantSampler . limits . max ,
shouldCheckValidRange = constantSampler . limits . shouldValidate Range
} ;
if ( samplerOption is UniformSampler uniformSampler )
return new Samplers . UniformSampler
minimum = ( float ) uniformSampler . min ,
maximum = ( float ) uniformSampler . max ,
} ,
minAllowed = ( float ) uniformSampler . minAllowed ,
maxAllowed = ( float ) uniformSampler . maxAllowed ,
shouldCheckValidRange = uniformSampler . shouldCheck ValidRange
minAllowed = ( float ) uniformSampler . limits . min ,
maxAllowed = ( float ) uniformSampler . limits . max ,
shouldCheckValidRange = uniformSampler . limits . shouldValidate Range
} ;
if ( samplerOption is NormalSampler normalSampler )
return new Samplers . NormalSampler
} ,
mean = ( float ) normalSampler . mean ,
standardDeviation = ( float ) normalSampler . stddev ,
minAllowed = ( float ) normalSampler . minAllowed ,
maxAllowed = ( float ) normalSampler . maxAllowed ,
shouldCheckValidRange = normalSampler . shouldCheck ValidRange
minAllowed = ( float ) normalSampler . limits . min ,
maxAllowed = ( float ) normalSampler . limits . max ,
shouldCheckValidRange = normalSampler . limits . shouldValidate Range
} ;
throw new ArgumentException ( $"Cannot deserialize unsupported sampler type {samplerOption.GetType()}" ) ;
}