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
Analysis IsEqual IsPositiveFunction IsZeroFunction And ToROBDD ToXORP DigitalSystem Imply list() Nor MantissaToPositiveDecimal MostSignificantDigit OrAnd SAT MaxSAT Assign StateTransitionBasedly GetExcitationTable To2layerOrAnd Simplification BestVariableOrder GetNegativeLogicFunction GetPositiveLogicFunction ComputeDONTCARE CreateDummyLogicFunction EnlargeLogicFunction var() XORP Zero