---
title: "ClikaRT::ops::mv"
sidebar_label: "mv"
description: "Matrix-vector multiply, with an optional fused bias and activation. a [M, K] x vec [K] -> [M]. input the matrix [M, K]. vec the vector [K]. bias optional additive bias, broadcastable to [M]."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--function">function</span>

## mv() {#mv}

<div class="api-signature">

[`Tensor`](../Tensor.md) **`mv`**(<br />
&nbsp;&nbsp;&nbsp;&nbsp;[`Tensor`](../Tensor.md) `input`,<br />
&nbsp;&nbsp;&nbsp;&nbsp;[`Tensor`](../Tensor.md) `vec`,<br />
&nbsp;&nbsp;&nbsp;&nbsp;[`OptionalTensor`](../../index.md#OptionalTensor) `bias` `=` `{}`,<br />
&nbsp;&nbsp;&nbsp;&nbsp;`std::optional<`[`Activation`](./index.md#Activation)`>` `activation` `=` `std::nullopt`<br />
)

</div>

Matrix-vector multiply, with an optional fused bias and activation.

`a [M, K] x vec [K] -> [M]`.

**Parameters**

- `input`: the matrix `[M, K]`.
- `vec`: the vector `[K]`.
- `bias`: optional additive bias, broadcastable to `[M]`.
- `activation`: optional fused epilogue; absent = none.

**Returns:** `[M]`.

**Throws**

- `ClikaRT::Error`: (`INVALID_ARGUMENT`) when `input` is not rank-2, `vec` not rank-1, or `K` disagrees.

<div class="api-declared">

Declared in `ClikaRT/compute/ops.h`, line 2881

</div>
