Working with Logic Synthesis Tools

Logical Functions and Dynamic UDFs
 
GeneXproTools 4.0 offers a total of 258 built-in logical functions, including all the Boolean functions with one and two inputs, 92 functions with three inputs, and 146 functions with four inputs, that can be used for designing logic circuits. This wide set of logical functions allows the evolution of sophisticated logic circuits that can be easily simplified and immediately ported to different logical systems.

The Function Selection Tool of GeneXproTools 4.0 helps you selecting different function sets very quickly through the combination of the Show options with the Random/Default/Clear/Select All buttons plus the Increase/Reduce Weight buttons in the Functions Panel. Furthermore, GeneXproTools automatically balances your function set with the number of independent variables in your data, which means that you just have to select the right functions for your problem and then choose their relative proportions by adjusting their weights.

Despite the wide set of GeneXproTools built-in logical functions, some users sometimes want to model with different ones. GeneXproTools 4.0 gives the user the possibility of creating custom tailored functions (Dynamic UDFs or DDFs) and evolve models with them. A note of caution though: the use of DDFs slows considerably the evolutionary process and therefore should be used with moderation.

Below are listed all the 258 built-in logical functions available in GeneXproTools 4.0, including their class (universal logical modules are identified by ULM, whereas universal NAND-like modules are identified by NLM), their representation in Karva Notation (shown in red) and their logical definition (for more details about their implementations, see the built-in grammars of GeneXproTools):

Basic logical functions with 1 and 2 inputs:

  • Not (Not): A'
  • And (ULM) (And): A·B
  • Or (ULM) (Or): A+B
  • Nand (NLM) (Nand): (A·B)'
  • Nor (NLM) (Nor): (A+B)'
  • Exclusive or (Xor): A^B
  • If and only if (Nxor): (A^B)'

Basic logical functions with 3 inputs:

  • And(a,b,c) (ULM) (And3): A·B·C
  • Or(a,b,c) (ULM) (Or3): A+B+C
  • Nand with 3 inputs (NLM) (Nand3): (A·B·C)'
  • Nor with 3 inputs (NLM) (Nor3): (A+B+C)'
  • Odd-3-parity (Odd3): Odd-3-parity
  • Even-3-parity (Even3): Even-3-parity

Basic logical functions with 4 inputs:

  • And(a,b,c,d) (ULM) (And4): A·B·C·D
  • Or(a,b,c,d) (ULM) (Or4): A+B+C+D
  • Nand with 4 inputs (NLM) (Nand4): (A·B·C·D)'
  • Nor with 4 inputs (NLM) (Nor4): (A+B+C+D)'
  • Odd-4-parity (Odd4): Odd-4-parity
  • Even-4-parity (Even4): Even-4-parity

Additional logical functions with 1 input:

  • Identity function (Id): Id(A) = A
  • Constant zero function (Zero): 0(A) = 0
  • Constant one function (One): 1(A) = 1

Additional logical functions with 2 inputs:

  • Less than (ULM) (LT): A < B
  • Greater than (ULM) (GT): A > B
  • Less or equal (ULM) (LOE): A <= B
  • Greater or equal (ULM) (GOE): A >= B
  • Not A (NotA): NOT(A,B) = NOT A
  • Not B (NotB): NOT(A,B) = NOT B
  • Input A (IdA): IdA(A,B) = A
  • Input B (IdB): IdB(A,B) = B
  • 0(a,b) (Zero2): 0(A,B) = 0
  • 1(a,b) (One2): 1(A,B) = 1

Derived logical functions with 3 inputs:

  • LT(a,b,c) (ULM) (LT3): A < B < C
  • GT(a,b,c) (ULM) (GT3): A > B > C
  • LOE(a,b,c) (ULM) (LOE3): A <= B <= C
  • GOE(a,b,c) (ULM) (GOE3): A >= B >= C

Common logical functions with 3 inputs:

  • 3-Multiplexer (ULM) (Mux): 3-Multiplexer
  • If(a,b,c) (ULM) (If): If A = 1, then B, else C
  • Majority(a,b,c) (ULM) (Maj): Majority(A,B,C)
  • Minority(a,b,c) (ULM) (Min): Minority(A,B,C)
  • Exactly two off (ULM) (2Off): Exactly two off
  • Exactly two on (ULM) (2On): Exactly two on

Universal logical modules with 3 inputs (series A):

  • ULM with 3 inputs (A1) (LM3A1): AC'+BC
  • ULM with 3 inputs (A2) (LM3A2): AC'+B'C
  • ULM with 3 inputs (A3) (LM3A3): A'C'+BC
  • NLM with 3 inputs (A4) (LM3A4): A'C'+B'C

Universal logical modules with 3 inputs (series B):

  • ULM with 3 inputs (B1) (LM3B1): (A+C')·(B+C)
  • ULM with 3 inputs (B2) (LM3B2): (A+C')·(B'+C)
  • ULM with 3 inputs (B3) (LM3B3): (A'+C')·(B+C)
  • NLM with 3 inputs (B4) (LM3B4): (A'+C')·(B'+C)

Universal logical modules with 3 inputs (series C):

  • ULM with 3 inputs (C1) (LM3C1): AB'+BC
  • ULM with 3 inputs (C2) (LM3C2): AB'+ BC'
  • ULM with 3 inputs (C3) (LM3C3): A'B'+BC
  • NLM with 3 inputs (C4) (LM3C4): A'B'+ BC'

Universal logical modules with 3 inputs (series D):

  • ULM with 3 inputs (D1) (LM3D1): (A+B')·(B+C)
  • ULM with 3 inputs (D2) (LM3D2): (A+B')·(B+C')
  • ULM with 3 inputs (D3) (LM3D3): (A'+B')·(B+C)
  • NLM with 3 inputs (D4) (LM3D4): (A'+B')·(B+C')

Universal logical modules with 3 inputs (series E):

  • ULM with 3 inputs (E1) (LM3E1): A'C+ AB'
  • ULM with 3 inputs (E2) (LM3E2): A'C'+AB
  • NLM with 3 inputs (E3) (LM3E3): A'C'+ AB'

Universal logical modules with 3 inputs (series F):

  • ULM with 3 inputs (F1) (LM3F1): (A'+C)·(A+B')
  • ULM with 3 inputs (F2) (LM3F2): (A'+C')·(A+B)
  • NLM with 3 inputs (F3) (LM3F3): (A'+C')·(A+B')

Universal logical modules with 3 inputs (series G):

  • ULM with 3 inputs (G1) (LM3G1): (A^C')·(B^C)
  • ULM with 3 inputs (G2) (LM3G2): (A^C')·(B'^C)
  • ULM with 3 inputs (G3) (LM3G3): (A'^C')·(B^C)
  • ULM with 3 inputs (G4) (LM3G4): (A'^C')·(B'^C)

Universal logical modules with 3 inputs (series H):

  • ULM with 3 inputs (H1) (LM3H1): ((A·B)'· C)'
  • ULM with 3 inputs (H2) (LM3H2): (A·(B·C)')'
  • ULM with 3 inputs (H3) (LM3H3): ((A+B)'+ C)'
  • ULM with 3 inputs (H4) (LM3H4): (A+(B+C)')'

Comparison IF THEN ELSE functions with 3 inputs (series A):

  • Less Than with 3 inputs (A) (NLM) (LT3A): If A < B, then (A·C), else (B·C)'
  • Greater Than with 3 inputs (A) (NLM) (GT3A): If A > B, then (A·C), else (B·C)'
  • Less Or Equal To with 3 inputs (A) (ULM) (LOE3A): If A <= B, then (A·C), else (B·C)'
  • Greater Or Equal To with 3 inputs (A) (ULM) (GOE3A): If A >= B, then (A·C), else (B·C)'
  • Equal To with 3 inputs (A) (ULM) (ET3A): If A = B, then (A·C), else (B·C)'
  • Not Equal To with 3 inputs (A) (NLM) (NET3A): If A != B, then (A·C), else (B·C)'

Comparison IF THEN ELSE functions with 3 inputs (series B):

  • Less Than with 3 inputs (B) (ULM) (LT3B): If A < B, then (A·C)', else (A·C)
  • Greater Than with 3 inputs (B) (ULM) (GT3B): If A > B, then (A·C)', else (A·C)
  • Less Or Equal To with 3 inputs (B) (NLM) (LOE3B): If A <= B, then (A·C)', else (A·C)
  • Greater Or Equal To with 3 inputs (B) (NLM) (GOE3B): If A >= B, then (A·C)', else (A·C)
  • Equal To with 3 inputs (B) (NLM) (ET3B): If A = B, then (A·C)', else (A·C)
  • Not Equal To with 3 inputs (B) (ULM) (NET3B): If A != B, then (A·C)', else (A·C)

Comparison IF THEN ELSE functions with 3 inputs (series C):

  • Less Than with 3 inputs (C) (ULM) (LT3C): If A < B, then (A+C)', else (B+C)
  • Greater Than with 3 inputs (C) (ULM) (GT3C): If A > B, then (A+C)', else (B+C)
  • Less Or Equal To with 3 inputs (C) (NLM) (LOE3C): If A <= B, then (A+C)', else (B+C)
  • Greater Or Equal To with 3 inputs (C) (NLM) (GOE3C): If A >= B, then (A+C)', else (B+C)
  • Equal To with 3 inputs (C) (NLM) (ET3C): If A = B, then (A+C)', else (B+C)
  • Not Equal To with 3 inputs (C) (ULM) (NET3C): If A != B, then (A+C)', else (B+C)

Additional universal logical modules with 3 inputs:

  • Rule 4 (ULM) (T004): 00000100
  • Rule 8 (ULM) (T008): 00001000
  • Rule 9 (NLM) (T009): 00001001
  • Rule 32 (ULM) (T032): 00100000
  • Rule 33 (NLM) (T033): 00100001
  • Rule 41 (NLM) (T041): 00101001
  • Rule 55 (NLM) (T055): 00110111
  • Rule 57 (NLM) (T057): 00111001
  • Rule 64 (ULM) (T064): 01000000
  • Rule 65 (NLM) (T065): 01000001
  • Rule 69 (NLM) (T069): 01000101
  • Rule 73 (NLM) (T073): 01001001
  • Rule 81 (NLM) (T081): 01010001
  • Rule 89 (NLM) (T089): 01011001
  • Rule 93 (NLM) (T093): 01011101
  • Rule 96 (ULM) (T096): 01100000
  • Rule 101 (NLM) (T101): 01100101
  • Rule 109 (NLM) (T109): 01101101
  • Rule 111 (NLM) (T111): 01101111
  • Rule 121 (NLM) (T121): 01111001
  • Rule 123 (NLM) (T123): 01111011
  • Rule 125 (NLM) (T125): 01111101
  • Rule 154 (ULM) (T154): 10011010
  • Rule 223 (ULM) (T223): 11011111
  • Rule 239 (ULM) (T239): 11101111
  • Rule 249 (ULM) (T249): 11111001
  • Rule 251 (ULM) (T251): 11111011
  • Rule 253 (ULM) (T253): 11111101

Derived logical functions with 4 inputs:

  • LT(a,b,c,d) (ULM) (LT4): A < B < C < D
  • GT(a,b,c,d) (ULM) (GT4): A > B > C > D
  • LOE(a,b,c,d) (ULM) (LOE4): A <= B <= C <= D
  • GOE(a,b,c,d) (ULM) (GOE4): A >= B >= C >= D

Common logical functions with 4 inputs:

  • Tie (ULM) (Tie): Tie
  • Not tie (ULM) (Ntie): Not tie
  • Exactly three off (ULM) (3Off): Exactly three off
  • Exactly three on (ULM) (3On): Exactly three on

Universal logical modules with 4 inputs (series A):

  • ULM with 4 inputs (A1) (LM4A1): AD'+BD+CD
  • ULM with 4 inputs (A2) (LM4A2): AD'+B'D+CD
  • ULM with 4 inputs (A3) (LM4A3): AD'+BD+C'D
  • ULM with 4 inputs (A4) (LM4A4): AD'+B'D+C'D
  • ULM with 4 inputs (A5) (LM4A5): A'D'+BD+CD
  • ULM with 4 inputs (A6) (LM4A6): A'D'+B'D+CD
  • ULM with 4 inputs (A7) (LM4A7): A'D'+BD+C'D
  • NLM with 4 inputs (A8) (LM4A8): A'D'+B'D+C'D

Universal logical modules with 4 inputs (series B):

  • ULM with 4 inputs (B1) (LM4B1): (A+D')·(B+D)·(C+D)
  • ULM with 4 inputs (B2) (LM4B2): (A+D')·(B'+D)·(C+D)
  • ULM with 4 inputs (B3) (LM4B3): (A+D')·(B+D)·(C'+D)
  • ULM with 4 inputs (B4) (LM4B4): (A+D')·(B'+D)·(C'+D)
  • ULM with 4 inputs (B5) (LM4B5): (A'+D')·(B+D)·(C+D)
  • ULM with 4 inputs (B6) (LM4B6): (A'+D')·(B'+D)·(C+D)
  • ULM with 4 inputs (B7) (LM4B7): (A'+D')·(B+D)·(C'+D)
  • NLM with 4 inputs (B8) (LM4B8): (A'+D')·(B'+D)·(C'+D)

Universal logical modules with 4 inputs (series C):

  • ULM with 4 inputs (C1) (LM4C1): AB'+BC+BD
  • ULM with 4 inputs (C2) (LM4C2): AB'+B'C+BD
  • ULM with 4 inputs (C3) (LM4C3): AB'+BC+B'D
  • ULM with 4 inputs (C4) (LM4C4): AB'+B'C+B'D
  • ULM with 4 inputs (C5) (LM4C5): A'B'+BC+BD
  • ULM with 4 inputs (C6) (LM4C6): A'B'+B'C+BD
  • ULM with 4 inputs (C7) (LM4C7): A'B'+BC+B'D
  • NLM with 4 inputs (C8) (LM4C8): A'B'+B'C+B'D

Universal logical modules with 4 inputs (series D):

  • ULM with 4 inputs (D1) (LM4D1): (A+B')·(B+C)·(B+D)
  • ULM with 4 inputs (D2) (LM4D2): (A+B')·(B'+C)·(B+D)
  • ULM with 4 inputs (D3) (LM4D3): (A+B')·(B+C)·(B'+D)
  • ULM with 4 inputs (D4) (LM4D4): (A+B')·(B'+C)·(B'+D)
  • ULM with 4 inputs (D5) (LM4D5): (A'+B')·(B+C)·(B+D)
  • ULM with 4 inputs (D6) (LM4D6): (A'+B')·(B'+C)·(B+D)
  • ULM with 4 inputs (D7) (LM4D7): (A'+B')·(B+C)·(B'+D)
  • NLM with 4 inputs (D8) (LM4D8): (A'+B')·(B'+C)·(B'+D)

Universal logical modules with 4 inputs (series E):

  • ULM with 4 inputs (E1) (LM4E1): AC'+BC+CD
  • ULM with 4 inputs (E2) (LM4E2): AC'+B'C+CD
  • ULM with 4 inputs (E3) (LM4E3): AC'+BC+C'D
  • ULM with 4 inputs (E4) (LM4E4): AC'+B'C+C'D
  • ULM with 4 inputs (E5) (LM4E5): A'C'+BC+CD
  • ULM with 4 inputs (E6) (LM4E6): A'C'+B'C+CD
  • ULM with 4 inputs (E7) (LM4E7): A'C'+BC+C'D
  • NLM with 4 inputs (E8) (LM4E8): A'C'+B'C+C'D

Universal logical modules with 4 inputs (series F):

  • ULM with 4 inputs (F1) (LM4F1): (A+C')·(B+C)·(C+D)
  • ULM with 4 inputs (F2) (LM4F2): (A+C')·(B'+C)·(C+D)
  • ULM with 4 inputs (F3) (LM4F3): (A+C')·(B+C)·(C'+D)
  • ULM with 4 inputs (F4) (LM4F4): (A+C')·(B'+C)·(C'+D)
  • ULM with 4 inputs (F5) (LM4F5): (A'+C')·(B+C)·(C+D)
  • ULM with 4 inputs (F6) (LM4F6): (A'+C')·(B'+C)·(C+D)
  • ULM with 4 inputs (F7) (LM4F7): (A'+C')·(B+C)·(C'+D)
  • NLM with 4 inputs (F8) (LM4F8): (A'+C')·(B'+C)·(C'+D)

Universal logical modules with 4 inputs (series G):

  • ULM with 4 inputs (G1) (LM4G1): A'D+AB+AC
  • ULM with 4 inputs (G2) (LM4G2): A'D+AB'+AC
  • ULM with 4 inputs (G3) (LM4G3): A'D+AB+ AC'
  • ULM with 4 inputs (G4) (LM4G4): A'D+AB'+ AC'
  • ULM with 4 inputs (G5) (LM4G5): A'D'+AB+AC
  • ULM with 4 inputs (G6) (LM4G6): A'D'+AB'+AC
  • ULM with 4 inputs (G7) (LM4G7): A'D'+AB+ AC'
  • NLM with 4 inputs (G8) (LM4G8): A'D'+AB'+ AC'

Universal logical modules with 4 inputs (series H):

  • ULM with 4 inputs (H1) (LM4H1): (A'+D)·(A+B)·(A+C)
  • ULM with 4 inputs (H2) (LM4H2): (A'+D)·(A+B')·(A+C)
  • ULM with 4 inputs (H3) (LM4H3): (A'+D)·(A+B)·(A+C')
  • ULM with 4 inputs (H4) (LM4H4): (A'+D)·(A+B')·(A+C')
  • ULM with 4 inputs (H5) (LM4H5): (A'+D')·(A+B)·(A+C)
  • ULM with 4 inputs (H6) (LM4H6): (A'+D')·(A+B')·(A+C)
  • ULM with 4 inputs (H7) (LM4H7): (A'+D')·(A+B)·(A+C')
  • NLM with 4 inputs (H8) (LM4H8): (A'+D')·(A+B')·(A+C')

Universal logical modules with 4 inputs (series I):

  • NLM with 4 inputs (I1) (LM4I1): (((A·B)'·C)'· D)'
  • NLM with 4 inputs (I2) (LM4I2): (A·(B·(C·D)')')'
  • NLM with 4 inputs (I3) (LM4I3): ((A·(B· C)')'·D)'
  • NLM with 4 inputs (I4) (LM4I4): (A·((B·C)'· D)')'
  • NLM with 4 inputs (I5) (LM4I5): (((A+B)'+C)'+ D)'
  • NLM with 4 inputs (I6) (LM4I6): (A+(B+(C+D)')')'
  • NLM with 4 inputs (I7) (LM4I7): ((A+(B+ C)')'+D)'
  • NLM with 4 inputs (I8) (LM4I8): (A+((B+C)'+ D)')'

Comparison IF THEN ELSE functions with 4 inputs (series A):

  • Less Than with 4 inputs (A) (ULM) (LT4A): If A < B, then C, else D
  • Greater Than with 4 inputs (A) (ULM) (GT4A): If A > B, then C, else D
  • Less Or Equal To with 4 inputs (A) (ULM) (LOE4A): If A <= B, then C, else D
  • Greater Or Equal To with 4 inputs (A) (ULM) (GOE4A): If A >= B, then C, else D
  • Equal To with 4 inputs (A) (ULM) (ET4A): If A = B, then C, else D
  • Not Equal To with 4 inputs (A) (ULM) (NET4A): If A != B, then C, else D

Comparison IF THEN ELSE functions with 4 inputs (series B):

  • Less Than with 4 inputs (B) (NLM) (LT4B): If A < B, then (C·D), else D'
  • Greater Than with 4 inputs (B) (NLM) (GT4B): If A > B, then (C·D), else D'
  • Less Or Equal To with 4 inputs (B) (ULM) (LOE4B): If A <= B, then (C·D), else D'
  • Greater Or Equal To with 4 inputs (B) (ULM) (GOE4B): If A >= B, then (C·D), else D'
  • Equal To with 4 inputs (B) (ULM) (ET4B): If A = B, then (C·D), else D'
  • Not Equal To with 4 inputs (B) (NLM) (NET4B): If A != B, then (C·D), else D'

Comparison IF THEN ELSE functions with 4 inputs (series C):

  • Less Than with 4 inputs (C) (NLM) (LT4C): If A < B, then (C+D), else D'
  • Greater Than with 4 inputs (C) (NLM) (GT4C): If A > B, then (C+D), else D'
  • Less Or Equal To with 4 inputs (C) (ULM) (LOE4C): If A <= B, then (C+D), else D'
  • Greater Or Equal To with 4 inputs (C) (ULM) (GOE4C): If A >= B, then (C+D), else D'
  • Equal To with 4 inputs (C) (ULM) (ET4C): If A = B, then (C+D), else D'
  • Not Equal To with 4 inputs (C) (NLM) (NET4C): If A != B, then (C+D), else D'

Comparison IF THEN ELSE functions with 4 inputs (series D):

  • Less Than with 4 inputs (D) (NLM) (LT4D): If A < B, then (A·D), else (C·D)'
  • Greater Than with 4 inputs (D) (NLM) (GT4D): If A > B, then (A·D), else (C·D)'
  • Less Or Equal To with 4 inputs (D) (ULM) (LOE4D): If A <= B, then (A·D), else (C·D)'
  • Greater Or Equal To with 4 inputs (D) (ULM) (GOE4D): If A >= B, then (A·D), else (C·D)'
  • Equal To with 4 inputs (D) (ULM) (ET4D): If A = B, then (A·D), else (C·D)'
  • Not Equal To with 4 inputs (D) (NLM) (NET4D): If A != B, then (A·D), else (C·D)'

Comparison IF THEN ELSE functions with 4 inputs (series E):

  • Less Than with 4 inputs (E) (ULM) (LT4E): If A < B, then (A·D)', else (A·C)
  • Greater Than with 4 inputs (E) (ULM) (GT4E): If A > B, then (A·D)', else (A·C)
  • Less Or Equal To with 4 inputs (E) (NLM) (LOE4E): If A <= B, then (A·D)', else (A·C)
  • Greater Or Equal To with 4 inputs (E) (NLM) (GOE4E): If A >= B, then (A·D)', else (A·C)
  • Equal To with 4 inputs (E) (NLM) (ET4E): If A = B, then (A·D)', else (A·C)
  • Not Equal To with 4 inputs (E) (ULM) (NET4E): If A != B, then (A·D)', else (A·C)

Additional universal logical modules with 4 inputs:

  • Rule 00002 (ULM) (Q0002): 0000000000000010
  • Rule 00028 (ULM) (Q001C): 0000000000011100
  • Rule 00072 (ULM) (Q0048): 0000000001001000
  • Rule 02048 (ULM) (Q0800): 0000100000000000
  • Rule 13176 (ULM) (Q3378): 0011001101111000
  • Rule 13429 (NLM) (Q3475): 0011010001110101
  • Rule 15536 (ULM) (Q3CB0): 0011110010110000
  • Rule 15855 (NLM) (Q3DEF): 0011110111101111
  • Rule 15871 (NLM) (Q3DFF): 0011110111111111
  • Rule 16896 (ULM) (Q4200): 0100001000000000
  • Rule 19473 (NLM) (Q4C11): 0100110000010001
  • Rule 20736 (ULM) (Q5100): 0101000100000000
  • Rule 24303 (NLM) (Q5EEF): 0101111011101111
  • Rule 24319 (NLM) (Q5EFF): 0101111011111111
  • Rule 27245 (NLM) (Q6A6D): 0110101001101101
  • Rule 28533 (NLM) (Q6F75): 0110111101110101
  • Rule 29892 (ULM) (Q74C4): 0111010011000100
  • Rule 32163 (NLM) (Q7DA3): 0111110110100011
  • Rule 33540 (ULM) (Q8304): 1000001100000100
  • Rule 33840 (ULM) (Q8430): 1000010000110000
  • Rule 34115 (ULM) (Q8543): 1000010101000011
  • Rule 40320 (ULM) (Q9D80): 1001110110000000
  • Rule 41106 (ULM) (QA092): 1010000010010010
  • Rule 45930 (ULM) (QB36A): 1011001101101010
  • Rule 52175 (ULM) (QCBCF): 1100101111001111
  • Rule 61105 (ULM) (QEEB1): 1110111010110001
  • Rule 61439 (ULM) (QEFFF): 1110111111111111
  • Rule 65403 (ULM) (QFF7B): 1111111101111011
  • Rule 65526 (ULM) (QFFF6): 1111111111110110
  • Rule 65531 (ULM) (QFFFB): 1111111111111011

By selecting the Functions Tab in the Functions Panel, you have full access to the 258 built-in logical functions of GeneXproTools 4.0. Here is also the place where you can add Dynamic UDFs to your modeling kit.

To select a function, just check the box on the left. By default, the weight of each function is 1, but you can increase the probability of a function being included in your logic circuits by increasing its weight in the Select/Weight column. GeneXproTools automatically balances your function set with the number of independent variables in your data, so now you just have to select the right functions for your problem and then choose their relative proportions by choosing their weights.

To add a DDF to your modeling kit, just click the Add button on the Dynamic UDFs frame and the DDF Editor appears.

By choosing the arity (minimum is 1 and maximum is 4) in the Arity box, the function header appears below. Then you just have to write the body of the function in the code editor. The code must be in JavaScript and can be conveniently tested for compiling errors by pressing the Test button.

In the Definition box, you can write a brief description of the function for your future reference. The text you write there will appear in the Definition column.

Dynamic UDFs are extremely powerful and interesting tools as they are treated exactly like the built-in functions of GeneXproTools and therefore can be used to model all kinds of relationships between variables or complex expressions. For instance, you can design a DDF so that it will model four expressions OR-ed together, that is, DDF = (expression 1) OR (expression 2) OR (expression 3) OR (expression 4), where the value of each expression will depend on the context of the DDF in the expression tree. A note of caution, though, although extremely interesting, DDFs decrease considerably the speed of the algorithm and therefore we advise you to choose your functions from the wide set of GeneXproTools 4.0 built-in logical functions.

Home | Contents | Previous  | Next