aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com/yahoo/searchlib/expression/XorBitFunctionNode.java
blob: dba95e4150d66e05f22c989931620222b0ecd615 (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
// Copyright Vespa.ai. 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, XorBitFunctionNode::new);

    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;
    }
}