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
            
                
                
                
                
                
                
                
                
                
                
                
                
                
                
             
            
            
            
            
            
PermuteLogicFunction IsInverse IsSymmetricFunctionTo IsUnateFunction BCDEx3 OneComplement PureBinary binary ToROBDD ToXORP DigitalSystem ExcitationTable MantissaToPositiveNumber PositiveNumberToMantissa RadixToIndex object One Assign StateVariables BestVariableOrder ROBDD DontCare Shannon TruthTable GetSubTable ComputeDONTCARE EnlargeLogicFunction var() XORP Zero