Utility.ShannonExpansion
Back to table
/*
Logic-Function-Analysis
Utility.ShannonExpansion
[LogicFunction() g]=Utility.ShannonExpansion(LogicFunction F1, LogicFunction F2);
F1 : a logic function as a target.
F2 : a logic function as a factor.
g : two logic function (g1,g2) are returned.
Compute the Shannon expansion of $F_1$, where $F_1=g_1 \cdot F2 + g_2 \cdot \not{F_2}$ .
*/
//-------------------------------------------------------------------
// examples
f = AndOr()
{
1;
2;
3;
}
h=And(-1,2);
g=Utility.ShannonExpansion(f,h);
Print(f,h,g);
[r]=Or( And(h,List.Get(g,1)), And(Not(h),List.Get(g,2)) );
Print(r,And(Not(r),f));
//-------------------------------------------------------------------
// result
IsLinearFunction IsParityFunction IsPositiveUnateFunctionTo IsSelfDualFunction And BDD TwoComplement ToAndXor Eq Equiv ExcitationTable FeedbackSystem Load LogicScript logicvardef SOP To2LayerAndXor ToStateTransitionTable CreateCompactTable CreateCompactTableWithFullSimplification GetExcitationTable ToDigitalSystem Compatibility MultiCover Shannon TruthTable AdjustLogicVariableCount CreateDummyLogicFunction var Zero