---
title: "ClikaRT::nn::CosineSimilarity"
sidebar_label: "CosineSimilarity"
description: "Cosine similarity of x1 and x2 along dim, with broadcasting. The module form of ClikaRT::ops::cosine_similarity, which documents the full contract (shapes, dtypes, errors); construct once, then call i…"
---

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

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

**Header:** `ClikaRT/nn/generated/distance.h`  
**Inherits:** [`ClikaRT::nn::Module`](./Module.md)

Cosine similarity of `x1` and `x2` along `dim`, with broadcasting. The module form of [`ClikaRT::ops::cosine_similarity`](../ops/cosine_similarity.md#cosine_similarity), which documents the full contract (shapes, dtypes, errors); construct once, then call it like a function.

## Member functions

### CosineSimilarity(CosineSimilarityOptions) {#CosineSimilarity}

<div class="api-signature">

`explicit` **`CosineSimilarity`**([`CosineSimilarityOptions`](./CosineSimilarityOptions.md) `options` `=` `{}`)

</div>

Constructs the module from [`options`](./CosineSimilarity.md#options) (every default when omitted).

<div class="api-declared">

Declared in `ClikaRT/nn/generated/distance.h`, line 64

</div>

### CosineSimilarity(int64\_t, optional\<double\>) {#CosineSimilarity-2}

<div class="api-signature">

`explicit` **`CosineSimilarity`**(`std::int64_t` `dim`, `std::optional<double>` `eps` `=` `std::nullopt`)

</div>

`CosineSimilarity(dim, eps)`: the positional form of `CosineSimilarityOptions(dim, eps)`.

<div class="api-declared">

Declared in `ClikaRT/nn/generated/distance.h`, line 68

</div>

### forward() {#forward}

<div class="api-signature">

[`Tensor`](../Tensor.md) **`forward`**([`Tensor`](../Tensor.md) `x1`, [`Tensor`](../Tensor.md) `x2`) `const`

</div>

[`forward_impl`](./CosineSimilarity.md#forward), unwrapped: raises [`ClikaRT::Error`](../Error.md) on failure.

<div class="api-declared">

Declared in `ClikaRT/nn/generated/distance.h`, line 82

</div>

### operator()() {#operator-call}

<div class="api-signature">

[`Tensor`](../Tensor.md) **`operator()`**([`Tensor`](../Tensor.md) `x1`, [`Tensor`](../Tensor.md) `x2`) `const`

</div>

Same as [`forward`](./CosineSimilarity.md#forward).

<div class="api-declared">

Declared in `ClikaRT/nn/generated/distance.h`, line 86

</div>

### options() {#options}

<div class="api-signature">

`const` [`CosineSimilarityOptions`](./CosineSimilarityOptions.md)`&` **`options`**() `const`

</div>

The settings this module was constructed with.

<div class="api-declared">

Declared in `ClikaRT/nn/generated/distance.h`, line 90

</div>
