# Tutorial: Float16 Support

CryoSPARC v4.4 introduced support for saving particles and motion-corrected micrographs in float16 format, which retains fewer significant figures than the default setting (float32). This feature is off by default, but when turned on, reduces the size of the data produced by approximately half.

To save data in float16 format, look for a toggle parameter called “Save results in 16-bit floating point” in motion correction or extraction jobs, and enable it.

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2FfJv8XOaYeMjXdLBPg9qO%2Fv4-4-0-float16-builder-1.png?alt=media&#x26;token=59fbfd86-bdd9-48b0-bcde-718e5fd96187" alt=""><figcaption></figcaption></figure>

Float16 is used as an on-disk format only. Once loaded from disk, computations within CryoSPARC are performed using 32 bits of precision.

In principle, the reduction in significant figures has the potential to reduce reconstruction accuracy or detail. In practice, this is not expected to be a problem in most cases. The figures below compare FSC curves and an example of sharpened map quality between two separate homogeneous refinements with the same initial (ab-initio) volume, but different particle stacks (one extracted in float32, and one extracted in float16). FSCs are from **Validation (FSC)** jobs, where the same mask has been used in both cases (the mask from the float32 refinement). The float16 example comes after the float32 example. The protein is Apoferritin.

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2FXILsvHWkUudubcA24HG9%2Fv4-4-0-float16-fsc-1.png?alt=media&#x26;token=09600444-21fc-4999-afbd-dfd6294fcf61" alt="" width="554"><figcaption><p>Float32</p></figcaption></figure>

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2FTmlNHEaZ3mkbQBkhDHzb%2Fv4-4-0-float16-fsc-2.png?alt=media&#x26;token=fbfc76a1-d8a3-4b8d-ac98-d0f6fc8315da" alt="" width="554"><figcaption><p>Float16</p></figcaption></figure>

And here is a comparison between the two sharpened maps. The blue map was refined from float16 particles, the gray from float32

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2FVRWta6nXc3oASIzxu3Ft%2Fv4-4-0-float16-compare-1.png?alt=media&#x26;token=dbb70722-fd46-4681-9098-b7d581653697" alt="" width="563"><figcaption><p>Float32</p></figcaption></figure>

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2F88yKb64FIPzLQjDFXaoO%2Fv4-4-0-float16-compare-2.png?alt=media&#x26;token=3a39fa81-d0c8-42b6-8b66-eb6f8eb37922" alt="" width="563"><figcaption><p>Float16</p></figcaption></figure>

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2FexhlVzU9m6ZyyZ5ltWSw%2Fv4-4-0-float16-compare-3.png?alt=media&#x26;token=28991324-c834-4ab6-8180-7317fb69f797" alt="" width="563"><figcaption><p>Float32 (gray solid) and Float16 (blue wireframe)</p></figcaption></figure>

<figure><img src="https://1916621962-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7DGv3GkRvGGpbVPCgg%2Fuploads%2FzpJCcw99Es07dvkHT1Dm%2Fv4-4-0-float16-compare-4.png?alt=media&#x26;token=2197f2b2-dad8-4b36-87da-67cd71639e62" alt="" width="563"><figcaption><p>Float16 (blue solid) and Float32 (gray wireframe)</p></figcaption></figure>

For more information on floating-point data representations, refer to the following wikipedia article: <https://en.wikipedia.org/wiki/IEEE_754> or any other source that explains the IEEE 754 standard for floating point arithmetic and representation.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.cryosparc.com/processing-data/tutorials-and-case-studies/tutorial-float16-support.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
