Added triangular distribution catch
This commit is contained in:
		
							parent
							
								
									4072c47b70
								
							
						
					
					
						commit
						b2c6ef7e5e
					
				| 
						 | 
				
			
			@ -157,8 +157,11 @@ module MathAdtToDistDst = {
 | 
			
		|||
  let triangular:
 | 
			
		||||
    array(arg) => result(ExpressionTypes.ExpressionTree.node, string) =
 | 
			
		||||
    fun
 | 
			
		||||
    | [|Value(low), Value(medium), Value(high)|] =>
 | 
			
		||||
    | [|Value(low), Value(medium), Value(high)|]
 | 
			
		||||
        when low < medium && medium < high =>
 | 
			
		||||
      Ok(`SymbolicDist(`Triangular({low, medium, high})))
 | 
			
		||||
    | [|Value(_), Value(_), Value(_)|] =>
 | 
			
		||||
      Error("Triangular values must be increasing order")
 | 
			
		||||
    | _ => Error("Wrong number of variables in triangle distribution");
 | 
			
		||||
 | 
			
		||||
  let multiModal =
 | 
			
		||||
| 
						 | 
				
			
			@ -238,7 +241,7 @@ module MathAdtToDistDst = {
 | 
			
		|||
      ) => {
 | 
			
		||||
    let toOkAlgebraic = r => Ok(`AlgebraicCombination(r));
 | 
			
		||||
    let toOkTruncate = r => Ok(`Truncate(r));
 | 
			
		||||
    let toOkFloatFromDist = r => Ok(`FloatFromDist(r))
 | 
			
		||||
    let toOkFloatFromDist = r => Ok(`FloatFromDist(r));
 | 
			
		||||
    switch (name, args) {
 | 
			
		||||
    | ("add", [|Ok(l), Ok(r)|]) => toOkAlgebraic((`Add, l, r))
 | 
			
		||||
    | ("add", _) => Error("Addition needs two operands")
 | 
			
		||||
| 
						 | 
				
			
			@ -276,10 +279,8 @@ module MathAdtToDistDst = {
 | 
			
		|||
      toOkFloatFromDist((`Cdf(v), d))
 | 
			
		||||
    | ("inv", [|Ok(d), Ok(`SymbolicDist(`Float(v)))|]) =>
 | 
			
		||||
      toOkFloatFromDist((`Inv(v), d))
 | 
			
		||||
    | ("mean", [|Ok(d)|]) =>
 | 
			
		||||
      toOkFloatFromDist((`Mean, d))
 | 
			
		||||
    | ("sample", [|Ok(d)|]) =>
 | 
			
		||||
      toOkFloatFromDist((`Sample, d))
 | 
			
		||||
    | ("mean", [|Ok(d)|]) => toOkFloatFromDist((`Mean, d))
 | 
			
		||||
    | ("sample", [|Ok(d)|]) => toOkFloatFromDist((`Sample, d))
 | 
			
		||||
    | _ => Error("This type not currently supported")
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user