aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com/yahoo/searchlib/expression/XorBitFunctionNode.java
blob: 8976214c67f9a041ea860f3e2140a67a2636d924 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.searchlib.expression;

/**
 * This function is a request to bitwise XOR the result of its first argument with itself in chunks of the second
 * argument number of bits. If the result to XOR is a 24 bit value, and the second argument is 8, this function will XOR
 * the first 8 bits of the result with the next 8 bits of the result, and then XOR that number with the next 8 bits of
 * the result.
 *
 * @author baldersheim
 * @author Simon Thoresen Hult
 */
public class XorBitFunctionNode extends UnaryBitFunctionNode {

    public static final int classId = registerClass(0x4000 + 71, XorBitFunctionNode.class);

    /**
     * Constructs an empty result node. <b>NOTE:</b> This instance is broken until non-optional member data is set.
     */
    public XorBitFunctionNode() {

    }

    /**
     * Constructs an instance of this class with given argument and number of bits.
     *
     * @param arg     The argument for this function.
     * @param numBits The number of bits to operate on.
     */
    public XorBitFunctionNode(ExpressionNode arg, int numBits) {
        super(arg, numBits);
    }

    @Override
    protected int onGetClassId() {
        return classId;
    }
}