---
title: erf
description: "误差函数，输入参数为实数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0435.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0435.html
indexId: f5f9174390982c57253ac351bc7a6184ef050ed409a4e17c1d147e238b864fd876
---
# erf

误差函数，输入参数为实数。

#### 接口定义

C interface：

float erff(float x);

double erf(double x);

double erf_18(double x);

long double erfl(long double x);

erf_18仅在高精度版本提供。


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| x | 在erff中，x是单精度浮点类型。 在erf和erf\_18中，x是双精度浮点类型。 在erfl中，x是长双精度浮点类型。 | 表示输入数据的浮点值。 | 输入 |


#### 返回值

- 返回入参x的误差函数结果y，y ∈ [-1, +1]。
- 输入nan，返回nan。
- 输入+∞，返回1。
- 输入-∞，返回-1。
- float接口，输入x >= 0x1.F5AAp1，返回1。
- float接口，输入x <= -0x1.F5AAp1，返回-1。
- double接口，输入x >= 0x1.7afb48dc96628p+2，返回1。
- double接口，输入x <= -0x1.7afb48dc96628p+2，返回-1。


#### 依赖

C: "km.h"


#### 示例

C interface：
```
// print result
printf("erf(0.0) = %.15f\n", erf(0.0));
printf("erf(-0.0) = %.15f\n", erf(-0.0));
printf("erf(0.25) = %.15f\n", erf(0.25));
printf("erf(-0.25) = %.15f\n", erf(-0.25));
printf("erf(0.5) = %.15f\n", erf(0.5));
printf("erf(-0.5) = %.15f\n", erf(-0.5));
printf("erf(1.0) = %.15f\n", erf(1.0));
printf("erf(-1.0) = %.15f\n", erf(-1.0));
printf("erf(2.0) = %.15f\n", erf(2.0));
printf("erf(-2.0) = %.15f\n", erf(-2.0));
printf("erf(INFINITY) = %.15f\n", erf(INFINITY));
printf("erf(-INFINITY) = %.15f\n", erf(-INFINITY));
printf("erf(NAN) = %.15f\n", erf(NAN));
printf("erf(-NAN) = %.15f\n", erf(-NAN));
/*
* erf(0.0) = 0.000000000000000
* erf(-0.0) = -0.000000000000000
* erf(0.25) = 0.276326390168237
* erf(-0.25) = -0.276326390168237
* erf(0.5) = 0.520499877813047
* erf(-0.5) = -0.520499877813047
* erf(1.0) = 0.842700792949715
* erf(-1.0) = -0.842700792949715
* erf(2.0) = 0.995322265018953
* erf(-2.0) = -0.995322265018953
* erf(INFINITY) = 1.000000000000000
* erf(-INFINITY) = -1.000000000000000
* erf(NAN) = nan
* erf(-NAN) = -nan
*
* */
```
