---
title: csqrt
description: "计算复数x的平方根。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0580.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/accel/kunpengaccel_kml_16_0580.html
indexId: 45f1e9d948d9b7bc12cbb1b6666a1a371260bbb54f7625c2ce1d41c2ab23017976
---
# csqrt

计算复数x的平方根。

#### 接口定义

C interface：

float complex csqrtf(float complex x);

double complex csqrt(double complex x);

long double complex csqrtl(long double complex x);

Fortran interface：

RES = SQRTF(X);

RES = SQRT(X);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| x | 在csqrtf中，x是复数单精度浮点类型。 在csqrt中，x是复数双精度浮点类型。 在csqrtl中，x是复数长双精度浮点类型。 | 表示输入数据的浮点值。 | 输入 |


#### 返回值

| 输入值实部（x.real） | 输入值虚部（x.imag） | 输出值实部（y.real） | 输出值虚部（y.imag） |
| --- | --- | --- | --- |
| ±0 | +0 | +0 | +0 |
| ±0 | \-0 | +0 | \-0 |
| ±0 | +inf | +inf | +inf |
| ±0 | \-inf | +inf | \-inf |
| +inf | +0 | +inf | +0 |
| +inf | \-0 | +inf | \-0 |
| \-inf | +0 | +0 | +inf |
| \-inf | \-0 | +0 | \-inf |
| ±inf | +inf | +inf | +inf |
| ±inf | \-inf | +inf | \-inf |
| 任意数 | nan | nan | nan |
| nan | 任意数 | nan | nan |


#### 依赖

C: "km.h"


#### 示例

C interface：
```
// typical usage
double x1 = 1.0, x2 = 2.0, x3 = 3.0, x4 = 4.0;
double complex cx1 = __builtin_complex(x1, x2);
double complex cx2 = __builtin_complex(x3, x4);
// print result
double ry;
double iy;
ry = __real__ csqrt(cx1);
iy = __imag__ csqrt(cx1);
printf("csqrt(cx1) = %.15f, %.15f\n", ry, iy);
ry = __real__ csqrt(cx2);
iy = __imag__ csqrt(cx2);
printf("csqrt(cx2) = %.15f, %.15f\n", ry, iy);
/*
* csqrt(cx1) = 1.272019649514069, 0.786151377757423
* csqrt(cx2) = 2.000000000000000, 1.000000000000000
* */
```


Fortran interface：

```
REAL(8) :: X = 3.0
PRINT*,  SQRT(X)
!
! OUTPUT
!     1.732050807568877
!
```
