View source on GitHub |

Multiplies tridiagonal matrix by matrix.

tf.linalg.tridiagonal_matmul( diagonals, rhs, diagonals_format='compact', name=None )

`diagonals`

is representation of 3-diagonal NxN matrix, which depends on `diagonals_format`

.

In `matrix`

format, `diagonals`

must be a tensor of shape `[..., M, M]`

, with two inner-most dimensions representing the square tridiagonal matrices. Elements outside of the three diagonals will be ignored.

If `sequence`

format, `diagonals`

is list or tuple of three tensors: `[superdiag, maindiag, subdiag]`

, each having shape [..., M]. Last element of `superdiag`

first element of `subdiag`

are ignored.

In `compact`

format the three diagonals are brought together into one tensor of shape `[..., 3, M]`

, with last two dimensions containing superdiagonals, diagonals, and subdiagonals, in order. Similarly to `sequence`

format, elements `diagonals[..., 0, M-1]`

and `diagonals[..., 2, 0]`

are ignored.

The `sequence`

format is recommended as the one with the best performance.

`rhs`

is matrix to the right of multiplication. It has shape `[..., M, N]`

.

superdiag = tf.constant([-1, -1, 0], dtype=tf.float64) maindiag = tf.constant([2, 2, 2], dtype=tf.float64) subdiag = tf.constant([0, -1, -1], dtype=tf.float64) diagonals = [superdiag, maindiag, subdiag] rhs = tf.constant([[1, 1], [1, 1], [1, 1]], dtype=tf.float64) x = tf.linalg.tridiagonal_matmul(diagonals, rhs, diagonals_format='sequence')

Args | |
---|---|

`diagonals` | A `Tensor` or tuple of `Tensor` s describing left-hand sides. The shape depends of `diagonals_format` , see description above. Must be `float32` , `float64` , `complex64` , or `complex128` . |

`rhs` | A `Tensor` of shape [..., M, N] and with the same dtype as `diagonals` . |

`diagonals_format` | one of `sequence` , or `compact` . Default is `compact` . |

`name` | A name to give this `Op` (optional). |

Returns | |
---|---|

A `Tensor` of shape [..., M, N] containing the result of multiplication. |

Raises | |
---|---|

`ValueError` | An unsupported type is provided as input, or when the input tensors have incorrect shapes. |

© 2020 The TensorFlow Authors. All rights reserved.

Licensed under the Creative Commons Attribution License 3.0.

Code samples licensed under the Apache 2.0 License.

https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/linalg/tridiagonal_matmul