open module nd4j.api {
    requires java.base;
    requires java.lang.ref;
    requires java.nio;
    requires byteunits;
    requires commons.io;
    requires commons.net;
    requires java.logging;
    requires java.management;
    requires lombok;
    requires org.apache.commons.compress;
    requires org.apache.commons.lang3;
    requires oshi.core;
    requires commons.collections4;
    requires commons.math3;
    requires flatbuffers.java;
    requires guava;
    requires jackson;
    requires nd4j.common;
    requires neoitertools;
    requires org.bytedeco.javacpp;
    requires protobuf;
    requires slf4j.api;
    exports onnx;
    exports org.nd4j;
    exports org.nd4j.adapters;
    exports org.nd4j.autodiff.execution.conf;
    exports org.nd4j.autodiff.execution.input;
    exports org.nd4j.autodiff.functions;
    exports org.nd4j.autodiff.listeners;
    exports org.nd4j.autodiff.listeners.checkpoint;
    exports org.nd4j.autodiff.listeners.debugging;
    exports org.nd4j.autodiff.listeners.impl;
    exports org.nd4j.autodiff.listeners.profiler;
    exports org.nd4j.autodiff.listeners.profiler.comparison;
    exports org.nd4j.autodiff.listeners.profiler.data;
    exports org.nd4j.autodiff.listeners.records;
    exports org.nd4j.autodiff.loss;
    exports org.nd4j.autodiff.samediff;
    exports org.nd4j.autodiff.samediff.api;
    exports org.nd4j.autodiff.samediff.array;
    exports org.nd4j.autodiff.samediff.config;
    exports org.nd4j.autodiff.samediff.impl;
    exports org.nd4j.autodiff.samediff.internal;
    exports org.nd4j.autodiff.samediff.internal.memory;
    exports org.nd4j.autodiff.samediff.ops;
    exports org.nd4j.autodiff.samediff.optimize;
    exports org.nd4j.autodiff.samediff.optimize.debug;
    exports org.nd4j.autodiff.samediff.optimize.optimizations;
    exports org.nd4j.autodiff.samediff.serde;
    exports org.nd4j.autodiff.samediff.transform;
    exports org.nd4j.autodiff.util;
    exports org.nd4j.autodiff.validation;
    exports org.nd4j.autodiff.validation.functions;
    exports org.nd4j.autodiff.validation.listeners;
    exports org.nd4j.context;
    exports org.nd4j.enums;
    exports org.nd4j.evaluation;
    exports org.nd4j.evaluation.classification;
    exports org.nd4j.evaluation.curves;
    exports org.nd4j.evaluation.custom;
    exports org.nd4j.evaluation.meta;
    exports org.nd4j.evaluation.regression;
    exports org.nd4j.evaluation.serde;
    exports org.nd4j.graph;
    exports org.nd4j.graph.ui;
    exports org.nd4j.imports;
    exports org.nd4j.imports.converters;
    exports org.nd4j.imports.descriptors.onnx;
    exports org.nd4j.imports.descriptors.properties;
    exports org.nd4j.imports.descriptors.properties.adapters;
    exports org.nd4j.imports.descriptors.tensorflow;
    exports org.nd4j.imports.graphmapper;
    exports org.nd4j.imports.graphmapper.tf;
    exports org.nd4j.imports.graphmapper.tf.tensors;
    exports org.nd4j.imports.tensorflow;
    exports org.nd4j.ir;
    exports org.nd4j.linalg.activations;
    exports org.nd4j.linalg.activations.impl;
    exports org.nd4j.linalg.api.blas;
    exports org.nd4j.linalg.api.blas.impl;
    exports org.nd4j.linalg.api.blas.params;
    exports org.nd4j.linalg.api.buffer;
    exports org.nd4j.linalg.api.buffer.allocation;
    exports org.nd4j.linalg.api.buffer.factory;
    exports org.nd4j.linalg.api.buffer.util;
    exports org.nd4j.linalg.api.concurrency;
    exports org.nd4j.linalg.api.environment;
    exports org.nd4j.linalg.api.iter;
    exports org.nd4j.linalg.api.memory;
    exports org.nd4j.linalg.api.memory.abstracts;
    exports org.nd4j.linalg.api.memory.conf;
    exports org.nd4j.linalg.api.memory.deallocation;
    exports org.nd4j.linalg.api.memory.enums;
    exports org.nd4j.linalg.api.memory.pointers;
    exports org.nd4j.linalg.api.memory.provider;
    exports org.nd4j.linalg.api.memory.stash;
    exports org.nd4j.linalg.api.ndarray;
    exports org.nd4j.linalg.api.ops;
    exports org.nd4j.linalg.api.ops.aggregates;
    exports org.nd4j.linalg.api.ops.aggregates.impl;
    exports org.nd4j.linalg.api.ops.compat;
    exports org.nd4j.linalg.api.ops.compression;
    exports org.nd4j.linalg.api.ops.custom;
    exports org.nd4j.linalg.api.ops.executioner;
    exports org.nd4j.linalg.api.ops.grid;
    exports org.nd4j.linalg.api.ops.impl.broadcast;
    exports org.nd4j.linalg.api.ops.impl.broadcast.bool;
    exports org.nd4j.linalg.api.ops.impl.controlflow;
    exports org.nd4j.linalg.api.ops.impl.controlflow.compat;
    exports org.nd4j.linalg.api.ops.impl.grid;
    exports org.nd4j.linalg.api.ops.impl.image;
    exports org.nd4j.linalg.api.ops.impl.indexaccum;
    exports org.nd4j.linalg.api.ops.impl.indexaccum.custom;
    exports org.nd4j.linalg.api.ops.impl.layers;
    exports org.nd4j.linalg.api.ops.impl.layers.convolution;
    exports org.nd4j.linalg.api.ops.impl.layers.convolution.config;
    exports org.nd4j.linalg.api.ops.impl.layers.recurrent;
    exports org.nd4j.linalg.api.ops.impl.layers.recurrent.config;
    exports org.nd4j.linalg.api.ops.impl.layers.recurrent.outputs;
    exports org.nd4j.linalg.api.ops.impl.layers.recurrent.weights;
    exports org.nd4j.linalg.api.ops.impl.loss;
    exports org.nd4j.linalg.api.ops.impl.loss.bp;
    exports org.nd4j.linalg.api.ops.impl.meta;
    exports org.nd4j.linalg.api.ops.impl.nlp;
    exports org.nd4j.linalg.api.ops.impl.reduce;
    exports org.nd4j.linalg.api.ops.impl.reduce.bool;
    exports org.nd4j.linalg.api.ops.impl.reduce.bp;
    exports org.nd4j.linalg.api.ops.impl.reduce.custom;
    exports org.nd4j.linalg.api.ops.impl.reduce.floating;
    exports org.nd4j.linalg.api.ops.impl.reduce.longer;
    exports org.nd4j.linalg.api.ops.impl.reduce.same;
    exports org.nd4j.linalg.api.ops.impl.reduce3;
    exports org.nd4j.linalg.api.ops.impl.scalar;
    exports org.nd4j.linalg.api.ops.impl.scalar.comparison;
    exports org.nd4j.linalg.api.ops.impl.scatter;
    exports org.nd4j.linalg.api.ops.impl.shape;
    exports org.nd4j.linalg.api.ops.impl.shape.bp;
    exports org.nd4j.linalg.api.ops.impl.shape.tensorops;
    exports org.nd4j.linalg.api.ops.impl.summarystats;
    exports org.nd4j.linalg.api.ops.impl.transforms;
    exports org.nd4j.linalg.api.ops.impl.transforms.any;
    exports org.nd4j.linalg.api.ops.impl.transforms.bool;
    exports org.nd4j.linalg.api.ops.impl.transforms.clip;
    exports org.nd4j.linalg.api.ops.impl.transforms.comparison;
    exports org.nd4j.linalg.api.ops.impl.transforms.custom;
    exports org.nd4j.linalg.api.ops.impl.transforms.custom.segment;
    exports org.nd4j.linalg.api.ops.impl.transforms.dtype;
    exports org.nd4j.linalg.api.ops.impl.transforms.floating;
    exports org.nd4j.linalg.api.ops.impl.transforms.gradient;
    exports org.nd4j.linalg.api.ops.impl.transforms.pairwise;
    exports org.nd4j.linalg.api.ops.impl.transforms.pairwise.arithmetic;
    exports org.nd4j.linalg.api.ops.impl.transforms.pairwise.arithmetic.bp;
    exports org.nd4j.linalg.api.ops.impl.transforms.pairwise.bool;
    exports org.nd4j.linalg.api.ops.impl.transforms.same;
    exports org.nd4j.linalg.api.ops.impl.transforms.segment;
    exports org.nd4j.linalg.api.ops.impl.transforms.segment.bp;
    exports org.nd4j.linalg.api.ops.impl.transforms.strict;
    exports org.nd4j.linalg.api.ops.impl.updaters;
    exports org.nd4j.linalg.api.ops.performance;
    exports org.nd4j.linalg.api.ops.performance.primitives;
    exports org.nd4j.linalg.api.ops.persistence;
    exports org.nd4j.linalg.api.ops.random;
    exports org.nd4j.linalg.api.ops.random.compat;
    exports org.nd4j.linalg.api.ops.random.custom;
    exports org.nd4j.linalg.api.ops.random.impl;
    exports org.nd4j.linalg.api.ops.util;
    exports org.nd4j.linalg.api.rng;
    exports org.nd4j.linalg.api.rng.distribution;
    exports org.nd4j.linalg.api.rng.distribution.factory;
    exports org.nd4j.linalg.api.rng.distribution.impl;
    exports org.nd4j.linalg.api.shape;
    exports org.nd4j.linalg.api.shape.loop.coordinatefunction;
    exports org.nd4j.linalg.api.shape.options;
    exports org.nd4j.linalg.cache;
    exports org.nd4j.linalg.checkutil;
    exports org.nd4j.linalg.compression;
    exports org.nd4j.linalg.convolution;
    exports org.nd4j.linalg.dataset;
    exports org.nd4j.linalg.dataset.adapter;
    exports org.nd4j.linalg.dataset.api;
    exports org.nd4j.linalg.dataset.api.iterator;
    exports org.nd4j.linalg.dataset.api.iterator.cache;
    exports org.nd4j.linalg.dataset.api.iterator.enums;
    exports org.nd4j.linalg.dataset.api.iterator.fetcher;
    exports org.nd4j.linalg.dataset.api.preprocessor;
    exports org.nd4j.linalg.dataset.api.preprocessor.classimbalance;
    exports org.nd4j.linalg.dataset.api.preprocessor.serializer;
    exports org.nd4j.linalg.dataset.api.preprocessor.stats;
    exports org.nd4j.linalg.dataset.callbacks;
    exports org.nd4j.linalg.dimensionalityreduction;
    exports org.nd4j.linalg.eigen;
    exports org.nd4j.linalg.env;
    exports org.nd4j.linalg.env.impl;
    exports org.nd4j.linalg.exception;
    exports org.nd4j.linalg.executors;
    exports org.nd4j.linalg.factory;
    exports org.nd4j.linalg.factory.ops;
    exports org.nd4j.linalg.heartbeat;
    exports org.nd4j.linalg.heartbeat.reports;
    exports org.nd4j.linalg.heartbeat.utils;
    exports org.nd4j.linalg.indexing;
    exports org.nd4j.linalg.indexing.conditions;
    exports org.nd4j.linalg.indexing.functions;
    exports org.nd4j.linalg.inverse;
    exports org.nd4j.linalg.learning;
    exports org.nd4j.linalg.learning.config;
    exports org.nd4j.linalg.learning.legacy;
    exports org.nd4j.linalg.learning.regularization;
    exports org.nd4j.linalg.lossfunctions;
    exports org.nd4j.linalg.lossfunctions.impl;
    exports org.nd4j.linalg.lossfunctions.serde;
    exports org.nd4j.linalg.ops.transforms;
    exports org.nd4j.linalg.profiler;
    exports org.nd4j.linalg.profiler.data;
    exports org.nd4j.linalg.profiler.data.primitives;
    exports org.nd4j.linalg.schedule;
    exports org.nd4j.linalg.string;
    exports org.nd4j.linalg.util;
    exports org.nd4j.linalg.workspace;
    exports org.nd4j.list;
    exports org.nd4j.serde.base64;
    exports org.nd4j.serde.binary;
    exports org.nd4j.serde.jackson.shaded;
    exports org.nd4j.serde.json;
    exports org.nd4j.systeminfo;
    exports org.nd4j.versioncheck;
    exports org.nd4j.weightinit;
    exports org.nd4j.weightinit.impl;
    exports org.tensorflow.distruntime;
    exports org.tensorflow.framework;
    exports org.tensorflow.util;
    exports tensorflow;
    exports tensorflow.eager;
    provides org.nd4j.common.base.PreconditionsFormat with org.nd4j.linalg.util.NDArrayPreconditionsFormat;
    provides org.nd4j.linalg.env.EnvironmentalAction with org.nd4j.linalg.env.impl.DebugAction, org.nd4j.linalg.env.impl.VerboseAction, org.nd4j.linalg.env.impl.FallbackAction, org.nd4j.linalg.env.impl.WorkspacesBypassAction, org.nd4j.linalg.env.impl.WorkspacesDebugAction, org.nd4j.linalg.env.impl.WorkspacesSpillAction, org.nd4j.linalg.env.impl.OmpNumThreadsAction, org.nd4j.linalg.env.impl.NDArrayUnpackAction;
    opens java.base to java.lang;
}
