2022-09-22 12:26:48 -07:00
|
|
|
# Copyright 2020 The JAX Authors.
|
2018-12-12 08:44:07 -05:00
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
2020-10-16 18:08:20 -04:00
|
|
|
from jax._src.numpy.linalg import (
|
2021-08-30 14:35:22 -07:00
|
|
|
cholesky as cholesky,
|
|
|
|
det as det,
|
|
|
|
eig as eig,
|
|
|
|
eigh as eigh,
|
|
|
|
eigvals as eigvals,
|
|
|
|
eigvalsh as eigvalsh,
|
|
|
|
inv as inv,
|
|
|
|
lstsq as lstsq,
|
|
|
|
matrix_power as matrix_power,
|
|
|
|
matrix_rank as matrix_rank,
|
|
|
|
norm as norm,
|
|
|
|
pinv as pinv,
|
|
|
|
qr as qr,
|
|
|
|
slogdet as slogdet,
|
|
|
|
solve as solve,
|
|
|
|
svd as svd,
|
2020-10-17 11:42:40 -07:00
|
|
|
)
|
|
|
|
from jax._src.third_party.numpy.linalg import (
|
2021-08-30 14:35:22 -07:00
|
|
|
cond as cond,
|
|
|
|
multi_dot as multi_dot,
|
|
|
|
tensorinv as tensorinv,
|
|
|
|
tensorsolve as tensorsolve,
|
2020-10-16 18:08:20 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
# Module initialization is encapsulated in a function to avoid accidental
|
|
|
|
# namespace pollution.
|
2020-07-09 16:31:08 -07:00
|
|
|
_NOT_IMPLEMENTED = []
|
2020-10-16 18:08:20 -04:00
|
|
|
def _init():
|
|
|
|
import numpy as np
|
|
|
|
from jax._src.numpy import lax_numpy
|
2021-01-11 14:20:32 -08:00
|
|
|
from jax._src import util
|
2020-10-16 18:08:20 -04:00
|
|
|
# Builds a set of all unimplemented NumPy functions.
|
|
|
|
for name, func in util.get_module_functions(np.linalg).items():
|
|
|
|
if name not in globals():
|
|
|
|
_NOT_IMPLEMENTED.append(name)
|
|
|
|
globals()[name] = lax_numpy._not_implemented(func)
|
|
|
|
|
|
|
|
_init()
|
|
|
|
del _init
|