---
title: erf
description: "误差函数，输入参数为实数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0220.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0220.html
indexId: f828b04925ba499287aacd924158cd5c0acee776aa02b92f171fc966683d2f1761
---
# 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
     * 
     * */
```
