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
IsPositiveUnateFunctionTo IsSymmetricFunctionTo IsThresholdFunction IsUnateFunctionTo binary() List TwoComplement binaryioset bool ToDualFunction ToPOS Diagram ExcitationTable logicvardef() MantissaToPositiveInteger PositiveDecimalToMantissa Radixes RadixToIndex One real SOP StateTransitionBasedly DontCare Full SimpleCover StateDeviceName GetDontCareLogicFunction AdjustLogicVariableCount Substitute Zero