All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yahoo.tensor.impl.TensorAddressAny1 Maven / Gradle / Ivy

Go to download

Library for use in Java components of Vespa. Shared code which do not fit anywhere else.

There is a newer version: 8.441.21
Show newest version
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

package com.yahoo.tensor.impl;

import com.yahoo.tensor.TensorAddress;

/**
 * A one-dimensional address.
 *
 * @author baldersheim
 */
final class TensorAddressAny1 extends TensorAddressAny {

    private final long label;

    TensorAddressAny1(long label) { this.label = label; }

    @Override public int size() { return 1; }

    @Override
    public long numericLabel(int i) {
        if (i == 0) {
            return label;
        }
        throw new IndexOutOfBoundsException("Index is not zero: " + i);
    }

    @Override
    public TensorAddress withLabel(int labelIndex, long label) {
        if (labelIndex == 0) return new TensorAddressAny1(label);
        throw new IllegalArgumentException("No label " + labelIndex);
    }

    @Override public int hashCode() { return (int)Math.abs(label); }

    @Override
    public boolean equals(Object o) {
        return (o instanceof TensorAddressAny1 any) && (label == any.label);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy