# make_svd_non_negative#

ivy.make_svd_non_negative(x, U, S, V, /, *, nntype='nndsvd')[source]#

Use NNDSVD method to transform SVD results into a non-negative form. This method leads to more efficient solving with NNMF [1].

Parameters:
• x (`Union`[`Array`, `NativeArray`]) – tensor being decomposed.

• U (`Union`[`Array`, `NativeArray`]) – left singular matrix from SVD.

• S (`Union`[`Array`, `NativeArray`]) – diagonal matrix from SVD.

• V (`Union`[`Array`, `NativeArray`]) – right singular matrix from SVD.

• nntype (`Optional`[`Literal`[`'nndsvd'`, `'nndsvda'`]], default: `'nndsvd'`) –

whether to fill small values with 0.0 (nndsvd),

or the tensor mean (nndsvda, default).

• [1] (Boutsidis & Gallopoulos. Pattern Recognition, 41(4): 1350-1362, 2008.) –

Return type:

`Tuple`[`Array`, `Array`]

Array.make_svd_non_negative(self, U, S, V, /, *, nntype='nndsvd')[source]#

ivy.Array instance method variant of ivy.make_svd_non_negative. This method simply wraps the function, and so the docstring for ivy.make_svd_non_negative also applies to this method with minimal changes.

Parameters:
• self (`Union`[`Array`, `NativeArray`]) – tensor being decomposed.

• U (`Union`[`Array`, `NativeArray`]) – left singular matrix from SVD.

• S (`Union`[`Array`, `NativeArray`]) – diagonal matrix from SVD.

• V (`Union`[`Array`, `NativeArray`]) – right singular matrix from SVD.

• nntype (`Optional`[`Literal`[`'nndsvd'`, `'nndsvda'`]], default: `'nndsvd'`) – whether to fill small values with 0.0 (nndsvd), or the tensor mean (nndsvda, default).

• [1] (Boutsidis & Gallopoulos. Pattern Recognition, 41(4): 1350-1362, 2008.) –

Return type:

`Tuple`[`Array`, `Array`]

Container.make_svd_non_negative(self, U, S, V, /, *, nntype='nndsvd', key_chains=None, to_apply=True, prune_unapplied=False, map_sequences=False)[source]#

ivy.Container instance method variant of ivy.make_svd_non_negative. This method simply wraps the function, and so the docstring for ivy.make_svd_non_negative applies to this method with minimal changes.

Parameters:
• self (`Union`[`Array`, `NativeArray`, `Container`]) – tensor being decomposed.

• U (`Union`[`Array`, `NativeArray`, `Container`]) – left singular matrix from SVD.

• S (`Union`[`Array`, `NativeArray`, `Container`]) – diagonal matrix from SVD.

• V (`Union`[`Array`, `NativeArray`, `Container`]) – right singular matrix from SVD.

• nntype (`Optional`[`Union`[`Literal`[`'nndsvd'`, `'nndsvda'`], `Container`]], default: `'nndsvd'`) – whether to fill small values with 0.0 (nndsvd), or the tensor mean (nndsvda, default).

• [1] (Boutsidis & Gallopoulos. Pattern Recognition, 41(4): 1350-1362, 2008.) –

Return type:

`Tuple`[`Container`, `Container`]