@@ -320,33 +320,21 @@ def draw_values_triangular(
320320 mode = float (dist_parameters [1 ])
321321 high = float (dist_parameters [2 ])
322322
323- if high == low : # collapsed distribution
324- print (
325- "Low and high parameters for triangular distribution"
326- f" are equal. Using constant { low } "
323+ dist_scale = high - low
324+ shape = (mode - low ) / dist_scale
325+
326+ if normalscoresamples is not None :
327+ values = scipy .stats .triang .ppf (
328+ scipy .stats .norm .cdf (normalscoresamples ),
329+ shape ,
330+ loc = low ,
331+ scale = dist_scale ,
327332 )
328- if normalscoresamples is not None :
329- values = scipy .stats .uniform .ppf (
330- scipy .stats .norm .cdf (normalscoresamples ), loc = low , scale = 0
331- )
332- else :
333- values = np .full (numreals , low )
334333 else :
335- dist_scale = high - low
336- shape = (mode - low ) / dist_scale
337-
338- if normalscoresamples is not None :
339- values = scipy .stats .triang .ppf (
340- scipy .stats .norm .cdf (normalscoresamples ),
341- shape ,
342- loc = low ,
343- scale = dist_scale ,
344- )
345- else :
346- uniform_samples = generate_stratified_samples (numreals , rng )
347- values = scipy .stats .triang .ppf (
348- uniform_samples , shape , loc = low , scale = dist_scale
349- )
334+ uniform_samples = generate_stratified_samples (numreals , rng )
335+ values = scipy .stats .triang .ppf (
336+ uniform_samples , shape , loc = low , scale = dist_scale
337+ )
350338
351339 return values
352340
0 commit comments