public static function getDataMaskBit(int $maskPattern, int $x, int $y) : bool
    {
        switch ($maskPattern) {
            case 0:
                $intermediate = ($y + $x) & 0x1;
                break;

            case 1:
                $intermediate = $y & 0x1;
                break;

            case 2:
                $intermediate = $x % 3;
                break;

            case 3:
                $intermediate = ($y + $x) % 3;
                break;

            case 4:
                $intermediate = (BitUtils::unsignedRightShift($y, 1) + ($x / 3)) & 0x1;
                break;

            case 5:
                $temp = $y * $x;
                $intermediate = ($temp & 0x1) + ($temp % 3);
                break;

            case 6:
                $temp = $y * $x;
                $intermediate = (($temp & 0x1) + ($temp % 3)) & 0x1;
                break;

            case 7:
                $temp = $y * $x;
                $intermediate = (($temp % 3) + (($y + $x) & 0x1)) & 0x1;
                break;

            default:
                throw new InvalidArgumentException('Invalid mask pattern: ' . $maskPattern);
        }

        return 0 == $intermediate;
    }
public static function getDataMaskBit(int $maskPattern, int $x, int $y) : bool
    {
        switch ($maskPattern) {
            case 0:
                $intermediate = ($y + $x) & 0x1;
                break;

            case 1:
                $intermediate = $y & 0x1;
                break;

            case 2:
                $intermediate = $x % 3;
                break;

            case 3:
                $intermediate = ($y + $x) % 3;
                break;

            case 4:
                $intermediate = (BitUtils::unsignedRightShift($y, 1) + ($x / 3)) & 0x1;
                break;

            case 5:
                $temp = $y * $x;
                $intermediate = ($temp & 0x1) + ($temp % 3);
                break;

            case 6:
                $temp = $y * $x;
                $intermediate = (($temp & 0x1) + ($temp % 3)) & 0x1;
                break;

            case 7:
                $temp = $y * $x;
                $intermediate = (($temp % 3) + (($y + $x) & 0x1)) & 0x1;
                break;

            default:
                throw new InvalidArgumentException('Invalid mask pattern: ' . $maskPattern);
        }

        return 0 == $intermediate;
    }
public static function getDataMaskBit ( int $ maskPattern , int $ x , int $ y ) : bool { switch ( $ maskPattern ) { case 0 : $ intermediate = ( $ y + $ x ) & 0x1 ; break ; case 1 : $ intermediate = $ y & 0x1 ; break ; case 2 : $ intermediate = $ x % 3 ; break ; case 3 : $ intermediate = ( $ y + $ x ) % 3 ; break ; case 4 : $ intermediate = ( BitUtils :: unsignedRightShift ( $ y , 1 ) + ( $ x / 3 ) ) & 0x1 ; break ; case 5 : $ temp = $ y * $ x ; $ intermediate = ( $ temp & 0x1 ) + ( $ temp % 3 ) ; break ; case 6 : $ temp = $ y * $ x ; $ intermediate = ( ( $ temp & 0x1 ) + ( $ temp % 3 ) ) & 0x1 ; break ; case 7 : $ temp = $ y * $ x ; $ intermediate = ( ( $ temp % 3 ) + ( ( $ y + $ x ) & 0x1 ) ) & 0x1 ; break ; default : throw new InvalidArgumentException ( 'Invalid mask pattern: ' . $ maskPattern ) ; } return 0 == $ intermediate ; }
Returns the mask bit for "getMaskPattern" at "x" and "y".

See 8.8 of JISX0510:2004 for mask pattern conditions.

@throws InvalidArgumentException if an invalid mask pattern was supplied
Returns the mask bit for getMaskPattern at x and y .