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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| /**
| * @license
| * Copyright 2020 Google LLC. All Rights Reserved.
| * 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
| *
| * http://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.
| * =============================================================================
| */
| /// <amd-module name="@tensorflow/tfjs-core/dist/ops/linalg/band_part" />
| import { Scalar, Tensor } from '../../tensor';
| import { TensorLike } from '../../types';
| /**
| * Copy a tensor setting everything outside a central band in each innermost
| * matrix to zero.
| *
| * The band part is computed as follows: Assume input has `k` dimensions
| * `[I, J, K, ..., M, N]`, then the output is a tensor with the same shape where
| * `band[i, j, k, ..., m, n] = in_band(m, n) * input[i, j, k, ..., m, n]`.
| * The indicator function
| * `in_band(m, n) = (num_lower < 0 || (m-n) <= num_lower)`
| * `&& (num_upper < 0 || (n-m) <= num_upper)`
| *
| * ```js
| * const x = tf.tensor2d([[ 0, 1, 2, 3],
| * [-1, 0, 1, 2],
| * [-2, -1, 0, 1],
| * [-3, -2, -1, 0]]);
| * let y = tf.linalg.bandPart(x, 1, -1);
| * y.print(); // [[ 0, 1, 2, 3],
| * // [-1, 0, 1, 2],
| * // [ 0, -1, 0, 1],
| * // [ 0, 0 , -1, 0]]
| * let z = tf.linalg.bandPart(x, 2, 1);
| * z.print(); // [[ 0, 1, 0, 0],
| * // [-1, 0, 1, 0],
| * // [-2, -1, 0, 1],
| * // [ 0, -2, -1, 0]]
| * ```
| *
| * @param x Rank `k` tensor
| * @param numLower Number of subdiagonals to keep.
| * If negative, keep entire lower triangle.
| * @param numUpper Number of subdiagonals to keep.
| * If negative, keep entire upper triangle.
| * @returns Rank `k` tensor of the same shape as input.
| * The extracted banded tensor.
| *
| * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
| */
| declare function bandPart_<T extends Tensor>(a: T | TensorLike, numLower: number | Scalar, numUpper: number | Scalar): T;
| export declare const bandPart: typeof bandPart_;
| export {};
|
|