libstdc++: cmath Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29#ifndef _GLIBCXX_TR1_CMATH

30#define _GLIBCXX_TR1_CMATH 1

31

32#pragma GCC system_header

33

35

37

38#ifdef _GLIBCXX_USE_C99_MATH_TR1

39

40#undef acosh

41#undef acoshf

42#undef acoshl

43#undef asinh

44#undef asinhf

45#undef asinhl

46#undef atanh

47#undef atanhf

48#undef atanhl

49#undef cbrt

50#undef cbrtf

51#undef cbrtl

52#undef copysign

53#undef copysignf

54#undef copysignl

55#undef erf

56#undef erff

57#undef erfl

58#undef erfc

59#undef erfcf

60#undef erfcl

61#undef exp2

62#undef exp2f

63#undef exp2l

64#undef expm1

65#undef expm1f

66#undef expm1l

67#undef fdim

68#undef fdimf

69#undef fdiml

70#undef fma

71#undef fmaf

72#undef fmal

73#undef fmax

74#undef fmaxf

75#undef fmaxl

76#undef fmin

77#undef fminf

78#undef fminl

79#undef hypot

80#undef hypotf

81#undef hypotl

82#undef ilogb

83#undef ilogbf

84#undef ilogbl

85#undef lgamma

86#undef lgammaf

87#undef lgammal

88#undef llrint

89#undef llrintf

90#undef llrintl

91#undef llround

92#undef llroundf

93#undef llroundl

94#undef log1p

95#undef log1pf

96#undef log1pl

97#undef log2

98#undef log2f

99#undef log2l

100#undef logb

101#undef logbf

102#undef logbl

103#undef lrint

104#undef lrintf

105#undef lrintl

106#undef lround

107#undef lroundf

108#undef lroundl

109#undef nan

110#undef nanf

111#undef nanl

112#undef nearbyint

113#undef nearbyintf

114#undef nearbyintl

115#undef nextafter

116#undef nextafterf

117#undef nextafterl

118#undef nexttoward

119#undef nexttowardf

120#undef nexttowardl

121#undef remainder

122#undef remainderf

123#undef remainderl

124#undef remquo

125#undef remquof

126#undef remquol

127#undef rint

128#undef rintf

129#undef rintl

130#undef round

131#undef roundf

132#undef roundl

133#undef scalbln

134#undef scalblnf

135#undef scalblnl

136#undef scalbn

137#undef scalbnf

138#undef scalbnl

139#undef tgamma

140#undef tgammaf

141#undef tgammal

142#undef trunc

143#undef truncf

144#undef truncl

145

146#endif

147

148namespace std _GLIBCXX_VISIBILITY(default)

149{

150_GLIBCXX_BEGIN_NAMESPACE_VERSION

151

152namespace tr1

153{

154#if _GLIBCXX_USE_C99_MATH_TR1

155

156

157

158

159 using ::double_t;

160 using ::float_t;

161

162

163 using ::acosh;

164 using ::acoshf;

165 using ::acoshl;

166

167 using ::asinh;

168 using ::asinhf;

169 using ::asinhl;

170

171 using ::atanh;

172 using ::atanhf;

173 using ::atanhl;

174

175 using ::cbrt;

176 using ::cbrtf;

177 using ::cbrtl;

178

179 using ::copysign;

180 using ::copysignf;

181 using ::copysignl;

182

183 using ::erf;

184 using ::erff;

185 using ::erfl;

186

187 using ::erfc;

188 using ::erfcf;

189 using ::erfcl;

190

191 using ::exp2;

192 using ::exp2f;

193 using ::exp2l;

194

195 using ::expm1;

196 using ::expm1f;

197 using ::expm1l;

198

199 using ::fdim;

200 using ::fdimf;

201 using ::fdiml;

202

203 using ::fma;

204 using ::fmaf;

205 using ::fmal;

206

207 using ::fmax;

208 using ::fmaxf;

209 using ::fmaxl;

210

211 using ::fmin;

212 using ::fminf;

213 using ::fminl;

214

215 using ::hypot;

216 using ::hypotf;

217 using ::hypotl;

218

219 using ::ilogb;

220 using ::ilogbf;

221 using ::ilogbl;

222

223 using ::lgamma;

224 using ::lgammaf;

225 using ::lgammal;

226

227 using ::llrint;

228 using ::llrintf;

229 using ::llrintl;

230

231 using ::llround;

232 using ::llroundf;

233 using ::llroundl;

234

235 using ::log1p;

236 using ::log1pf;

237 using ::log1pl;

238

239 using ::log2;

240 using ::log2f;

241 using ::log2l;

242

243 using ::logb;

244 using ::logbf;

245 using ::logbl;

246

247 using ::lrint;

248 using ::lrintf;

249 using ::lrintl;

250

251 using ::lround;

252 using ::lroundf;

253 using ::lroundl;

254

255 using ::nan;

256 using ::nanf;

257 using ::nanl;

258

259 using ::nearbyint;

260 using ::nearbyintf;

261 using ::nearbyintl;

262

263 using ::nextafter;

264 using ::nextafterf;

265 using ::nextafterl;

266

267 using ::nexttoward;

268 using ::nexttowardf;

269 using ::nexttowardl;

270

271 using ::remainder;

272 using ::remainderf;

273 using ::remainderl;

274

275 using ::remquo;

276 using ::remquof;

277 using ::remquol;

278

279 using ::rint;

280 using ::rintf;

281 using ::rintl;

282

283 using ::round;

284 using ::roundf;

285 using ::roundl;

286

287 using ::scalbln;

288 using ::scalblnf;

289 using ::scalblnl;

290

291 using ::scalbn;

292 using ::scalbnf;

293 using ::scalbnl;

294

295 using ::tgamma;

296 using ::tgammaf;

297 using ::tgammal;

298

299 using ::trunc;

300 using ::truncf;

301 using ::truncl;

302

303#endif

304

305#if _GLIBCXX_USE_C99_MATH

306#if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC

307

308

309 template<typename _Tp>

310 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

311 int>::__type

312 fpclassify(_Tp __f)

313 {

314 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

315 return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,

316 FP_SUBNORMAL, FP_ZERO, __type(__f));

317 }

318

319 template<typename _Tp>

320 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

321 int>::__type

322 isfinite(_Tp __f)

323 {

324 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

325 return __builtin_isfinite(__type(__f));

326 }

327

328 template<typename _Tp>

329 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

330 int>::__type

331 isinf(_Tp __f)

332 {

333 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

334 return __builtin_isinf(__type(__f));

335 }

336

337 template<typename _Tp>

338 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

339 int>::__type

340 isnan(_Tp __f)

341 {

342 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

343 return __builtin_isnan(__type(__f));

344 }

345

346 template<typename _Tp>

347 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

348 int>::__type

349 isnormal(_Tp __f)

350 {

351 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

352 return __builtin_isnormal(__type(__f));

353 }

354

355 template<typename _Tp>

356 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

357 int>::__type

358 signbit(_Tp __f)

359 {

360 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

361 return __builtin_signbit(__type(__f));

362 }

363

364 template<typename _Tp>

365 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

366 int>::__type

367 isgreater(_Tp __f1, _Tp __f2)

368 {

369 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

370 return __builtin_isgreater(__type(__f1), __type(__f2));

371 }

372

373 template<typename _Tp>

374 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

375 int>::__type

376 isgreaterequal(_Tp __f1, _Tp __f2)

377 {

378 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

379 return __builtin_isgreaterequal(__type(__f1), __type(__f2));

380 }

381

382 template<typename _Tp>

383 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

384 int>::__type

385 isless(_Tp __f1, _Tp __f2)

386 {

387 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

388 return __builtin_isless(__type(__f1), __type(__f2));

389 }

390

391 template<typename _Tp>

392 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

393 int>::__type

394 islessequal(_Tp __f1, _Tp __f2)

395 {

396 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

397 return __builtin_islessequal(__type(__f1), __type(__f2));

398 }

399

400 template<typename _Tp>

401 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

402 int>::__type

403 islessgreater(_Tp __f1, _Tp __f2)

404 {

405 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

406 return __builtin_islessgreater(__type(__f1), __type(__f2));

407 }

408

409 template<typename _Tp>

410 inline typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value,

411 int>::__type

412 isunordered(_Tp __f1, _Tp __f2)

413 {

414 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

415 return __builtin_isunordered(__type(__f1), __type(__f2));

416 }

417

418#endif

419#endif

420

421#if _GLIBCXX_USE_C99_MATH_TR1

422

423

424

425

426

427

428

429

430 using std::acos;

431 using std::asin;

432 using std::atan;

433 using std::atan2;

434 using std::ceil;

438 using std::floor;

439 using std::fmod;

440 using std::frexp;

441 using std::ldexp;

449

450#if __cplusplus >= 201103L

451

452

453

454

455 using std::acosh;

456 using std::asinh;

457 using std::atanh;

458 using std::cbrt;

459 using std::copysign;

460 using std::erf;

461 using std::erfc;

462 using std::exp2;

463 using std::expm1;

464 using std::fdim;

465 using std::fma;

466 using std::fmax;

467 using std::fmin;

468 using std::hypot;

469 using std::ilogb;

470 using std::lgamma;

471 using std::llrint;

472 using std::llround;

473 using std::log1p;

474 using std::log2;

475 using std::logb;

476 using std::lrint;

477 using std::lround;

478 using std::nan;

479 using std::nearbyint;

480 using std::nextafter;

481 using std::nexttoward;

482 using std::remainder;

483 using std::remquo;

484 using std::rint;

485 using std::round;

486 using std::scalbln;

487 using std::scalbn;

488 using std::tgamma;

489 using std::trunc;

490

491#else

492

493

494

495#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

496 inline float

497 acosh(float __x)

498 { return __builtin_acoshf(__x); }

499

500 inline long double

501 acosh(long double __x)

502 { return __builtin_acoshl(__x); }

503#endif

504

505 template<typename _Tp>

506 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

507 double>::__type

508 acosh(_Tp __x)

509 { return __builtin_acosh(__x); }

510

511#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

512 inline float

513 asinh(float __x)

514 { return __builtin_asinhf(__x); }

515

516 inline long double

517 asinh(long double __x)

518 { return __builtin_asinhl(__x); }

519#endif

520

521 template<typename _Tp>

522 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

523 double>::__type

524 asinh(_Tp __x)

525 { return __builtin_asinh(__x); }

526

527#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

528 inline float

529 atanh(float __x)

530 { return __builtin_atanhf(__x); }

531

532 inline long double

533 atanh(long double __x)

534 { return __builtin_atanhl(__x); }

535#endif

536

537 template<typename _Tp>

538 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

539 double>::__type

540 atanh(_Tp __x)

541 { return __builtin_atanh(__x); }

542

543#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

544 inline float

545 cbrt(float __x)

546 { return __builtin_cbrtf(__x); }

547

548 inline long double

549 cbrt(long double __x)

550 { return __builtin_cbrtl(__x); }

551#endif

552

553 template<typename _Tp>

554 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

555 double>::__type

556 cbrt(_Tp __x)

557 { return __builtin_cbrt(__x); }

558

559#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

560 inline float

561 copysign(float __x, float __y)

562 { return __builtin_copysignf(__x, __y); }

563

564 inline long double

565 copysign(long double __x, long double __y)

566 { return __builtin_copysignl(__x, __y); }

567#endif

568

569 template<typename _Tp, typename _Up>

570 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

571 copysign(_Tp __x, _Up __y)

572 {

573 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

574 return copysign(__type(__x), __type(__y));

575 }

576

577#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

578 inline float

579 erf(float __x)

580 { return __builtin_erff(__x); }

581

582 inline long double

583 erf(long double __x)

584 { return __builtin_erfl(__x); }

585#endif

586

587 template<typename _Tp>

588 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

589 double>::__type

590 erf(_Tp __x)

591 { return __builtin_erf(__x); }

592

593#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

594 inline float

595 erfc(float __x)

596 { return __builtin_erfcf(__x); }

597

598 inline long double

599 erfc(long double __x)

600 { return __builtin_erfcl(__x); }

601#endif

602

603 template<typename _Tp>

604 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

605 double>::__type

606 erfc(_Tp __x)

607 { return __builtin_erfc(__x); }

608

609#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

610 inline float

611 exp2(float __x)

612 { return __builtin_exp2f(__x); }

613

614 inline long double

615 exp2(long double __x)

616 { return __builtin_exp2l(__x); }

617#endif

618

619 template<typename _Tp>

620 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

621 double>::__type

622 exp2(_Tp __x)

623 { return __builtin_exp2(__x); }

624

625#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

626 inline float

627 expm1(float __x)

628 { return __builtin_expm1f(__x); }

629

630 inline long double

631 expm1(long double __x)

632 { return __builtin_expm1l(__x); }

633#endif

634

635 template<typename _Tp>

636 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

637 double>::__type

638 expm1(_Tp __x)

639 { return __builtin_expm1(__x); }

640

641#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

642 inline float

643 fdim(float __x, float __y)

644 { return __builtin_fdimf(__x, __y); }

645

646 inline long double

647 fdim(long double __x, long double __y)

648 { return __builtin_fdiml(__x, __y); }

649#endif

650

651 template<typename _Tp, typename _Up>

652 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

653 fdim(_Tp __x, _Up __y)

654 {

655 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

656 return fdim(__type(__x), __type(__y));

657 }

658

659#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

660 inline float

661 fma(float __x, float __y, float __z)

662 { return __builtin_fmaf(__x, __y, __z); }

663

664 inline long double

665 fma(long double __x, long double __y, long double __z)

666 { return __builtin_fmal(__x, __y, __z); }

667#endif

668

669 template<typename _Tp, typename _Up, typename _Vp>

670 inline typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type

671 fma(_Tp __x, _Up __y, _Vp __z)

672 {

673 typedef typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type __type;

674 return fma(__type(__x), __type(__y), __type(__z));

675 }

676

677#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

678 inline float

679 fmax(float __x, float __y)

680 { return __builtin_fmaxf(__x, __y); }

681

682 inline long double

683 fmax(long double __x, long double __y)

684 { return __builtin_fmaxl(__x, __y); }

685#endif

686

687 template<typename _Tp, typename _Up>

688 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

689 fmax(_Tp __x, _Up __y)

690 {

691 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

692 return fmax(__type(__x), __type(__y));

693 }

694

695#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

696 inline float

697 fmin(float __x, float __y)

698 { return __builtin_fminf(__x, __y); }

699

700 inline long double

701 fmin(long double __x, long double __y)

702 { return __builtin_fminl(__x, __y); }

703#endif

704

705 template<typename _Tp, typename _Up>

706 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

707 fmin(_Tp __x, _Up __y)

708 {

709 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

710 return fmin(__type(__x), __type(__y));

711 }

712

713#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

714 inline float

715 hypot(float __x, float __y)

716 { return __builtin_hypotf(__x, __y); }

717

718 inline long double

719 hypot(long double __x, long double __y)

720 { return __builtin_hypotl(__x, __y); }

721#endif

722

723 template<typename _Tp, typename _Up>

724 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

725 hypot(_Tp __y, _Up __x)

726 {

727 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

728 return hypot(__type(__y), __type(__x));

729 }

730

731#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

732 inline int

733 ilogb(float __x)

734 { return __builtin_ilogbf(__x); }

735

736 inline int

737 ilogb(long double __x)

738 { return __builtin_ilogbl(__x); }

739#endif

740

741 template<typename _Tp>

742 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

743 int>::__type

744 ilogb(_Tp __x)

745 { return __builtin_ilogb(__x); }

746

747#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

748 inline float

749 lgamma(float __x)

750 { return __builtin_lgammaf(__x); }

751

752 inline long double

753 lgamma(long double __x)

754 { return __builtin_lgammal(__x); }

755#endif

756

757 template<typename _Tp>

758 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

759 double>::__type

760 lgamma(_Tp __x)

761 { return __builtin_lgamma(__x); }

762

763#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

764 inline long long

765 llrint(float __x)

766 { return __builtin_llrintf(__x); }

767

768 inline long long

769 llrint(long double __x)

770 { return __builtin_llrintl(__x); }

771#endif

772

773 template<typename _Tp>

774 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

775 long long>::__type

776 llrint(_Tp __x)

777 { return __builtin_llrint(__x); }

778

779#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

780 inline long long

781 llround(float __x)

782 { return __builtin_llroundf(__x); }

783

784 inline long long

785 llround(long double __x)

786 { return __builtin_llroundl(__x); }

787#endif

788

789 template<typename _Tp>

790 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

791 long long>::__type

792 llround(_Tp __x)

793 { return __builtin_llround(__x); }

794

795#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

796 inline float

797 log1p(float __x)

798 { return __builtin_log1pf(__x); }

799

800 inline long double

801 log1p(long double __x)

802 { return __builtin_log1pl(__x); }

803#endif

804

805 template<typename _Tp>

806 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

807 double>::__type

808 log1p(_Tp __x)

809 { return __builtin_log1p(__x); }

810

811

812#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

813 inline float

814 log2(float __x)

815 { return __builtin_log2f(__x); }

816

817 inline long double

818 log2(long double __x)

819 { return __builtin_log2l(__x); }

820#endif

821

822 template<typename _Tp>

823 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

824 double>::__type

825 log2(_Tp __x)

826 { return __builtin_log2(__x); }

827

828#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

829 inline float

830 logb(float __x)

831 { return __builtin_logbf(__x); }

832

833 inline long double

834 logb(long double __x)

835 { return __builtin_logbl(__x); }

836#endif

837

838 template<typename _Tp>

839 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

840 double>::__type

841 logb(_Tp __x)

842 {

843 return __builtin_logb(__x);

844 }

845

846#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

847 inline long

848 lrint(float __x)

849 { return __builtin_lrintf(__x); }

850

851 inline long

852 lrint(long double __x)

853 { return __builtin_lrintl(__x); }

854#endif

855

856 template<typename _Tp>

857 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

858 long>::__type

859 lrint(_Tp __x)

860 { return __builtin_lrint(__x); }

861

862#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

863 inline long

864 lround(float __x)

865 { return __builtin_lroundf(__x); }

866

867 inline long

868 lround(long double __x)

869 { return __builtin_lroundl(__x); }

870#endif

871

872 template<typename _Tp>

873 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

874 long>::__type

875 lround(_Tp __x)

876 { return __builtin_lround(__x); }

877

878#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

879 inline float

880 nearbyint(float __x)

881 { return __builtin_nearbyintf(__x); }

882

883 inline long double

884 nearbyint(long double __x)

885 { return __builtin_nearbyintl(__x); }

886#endif

887

888 template<typename _Tp>

889 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

890 double>::__type

891 nearbyint(_Tp __x)

892 { return __builtin_nearbyint(__x); }

893

894#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

895 inline float

896 nextafter(float __x, float __y)

897 { return __builtin_nextafterf(__x, __y); }

898

899 inline long double

900 nextafter(long double __x, long double __y)

901 { return __builtin_nextafterl(__x, __y); }

902#endif

903

904 template<typename _Tp, typename _Up>

905 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

906 nextafter(_Tp __x, _Up __y)

907 {

908 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

909 return nextafter(__type(__x), __type(__y));

910 }

911

912#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

913 inline float

914 nexttoward(float __x, long double __y)

915 { return __builtin_nexttowardf(__x, __y); }

916

917 inline long double

918 nexttoward(long double __x, long double __y)

919 { return __builtin_nexttowardl(__x, __y); }

920#endif

921

922 template<typename _Tp>

923 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

924 double>::__type

925 nexttoward(_Tp __x, long double __y)

926 { return __builtin_nexttoward(__x, __y); }

927

928#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

929 inline float

930 remainder(float __x, float __y)

931 { return __builtin_remainderf(__x, __y); }

932

933 inline long double

934 remainder(long double __x, long double __y)

935 { return __builtin_remainderl(__x, __y); }

936#endif

937

938 template<typename _Tp, typename _Up>

939 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

940 remainder(_Tp __x, _Up __y)

941 {

942 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

943 return remainder(__type(__x), __type(__y));

944 }

945

946#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

947 inline float

948 remquo(float __x, float __y, int* __pquo)

949 { return __builtin_remquof(__x, __y, __pquo); }

950

951 inline long double

952 remquo(long double __x, long double __y, int* __pquo)

953 { return __builtin_remquol(__x, __y, __pquo); }

954#endif

955

956 template<typename _Tp, typename _Up>

957 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

958 remquo(_Tp __x, _Up __y, int* __pquo)

959 {

960 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

961 return remquo(__type(__x), __type(__y), __pquo);

962 }

963

964#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

965 inline float

966 rint(float __x)

967 { return __builtin_rintf(__x); }

968

969 inline long double

970 rint(long double __x)

971 { return __builtin_rintl(__x); }

972#endif

973

974 template<typename _Tp>

975 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

976 double>::__type

977 rint(_Tp __x)

978 { return __builtin_rint(__x); }

979

980#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

981 inline float

983 { return __builtin_roundf(__x); }

984

985 inline long double

986 round(long double __x)

987 { return __builtin_roundl(__x); }

988#endif

989

990 template<typename _Tp>

991 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

992 double>::__type

994 { return __builtin_round(__x); }

995

996#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

997 inline float

998 scalbln(float __x, long __ex)

999 { return __builtin_scalblnf(__x, __ex); }

1000

1001 inline long double

1002 scalbln(long double __x, long __ex)

1003 { return __builtin_scalblnl(__x, __ex); }

1004#endif

1005

1006 template<typename _Tp>

1007 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

1008 double>::__type

1009 scalbln(_Tp __x, long __ex)

1010 { return __builtin_scalbln(__x, __ex); }

1011

1012#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

1013 inline float

1014 scalbn(float __x, int __ex)

1015 { return __builtin_scalbnf(__x, __ex); }

1016

1017 inline long double

1018 scalbn(long double __x, int __ex)

1019 { return __builtin_scalbnl(__x, __ex); }

1020#endif

1021

1022 template<typename _Tp>

1023 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

1024 double>::__type

1025 scalbn(_Tp __x, int __ex)

1026 { return __builtin_scalbn(__x, __ex); }

1027

1028#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

1029 inline float

1030 tgamma(float __x)

1031 { return __builtin_tgammaf(__x); }

1032

1033 inline long double

1034 tgamma(long double __x)

1035 { return __builtin_tgammal(__x); }

1036#endif

1037

1038 template<typename _Tp>

1039 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

1040 double>::__type

1041 tgamma(_Tp __x)

1042 { return __builtin_tgamma(__x); }

1043

1044#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

1045 inline float

1046 trunc(float __x)

1047 { return __builtin_truncf(__x); }

1048

1049 inline long double

1050 trunc(long double __x)

1051 { return __builtin_truncl(__x); }

1052#endif

1053

1054 template<typename _Tp>

1055 inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value,

1056 double>::__type

1057 trunc(_Tp __x)

1058 { return __builtin_trunc(__x); }

1059

1060#endif

1061

1062

1063

1064#endif

1065

1066

1067

1068

1069

1070

1071

1072

1073

1074

1075

1076

1077

1078

1079

1080#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

1081 inline float

1082 pow(float __x, float __y)

1083 { return std::pow(__x, __y); }

1084

1085 inline long double

1086 pow(long double __x, long double __y)

1087 { return std::pow(__x, __y); }

1088#endif

1089

1090 template<typename _Tp, typename _Up>

1091 inline typename __gnu_cxx::__promote_2<_Tp, _Up>::__type

1092 pow(_Tp __x, _Up __y)

1093 {

1094 typedef typename __gnu_cxx::__promote_2<_Tp, _Up>::__type __type;

1095 return std::pow(__type(__x), __type(__y));

1096 }

1097

1098#if __cplusplus >= 201103L

1099

1100

1101

1102

1103

1104

1105

1106

1107#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO

1108#ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP

1109 inline float

1110 fabs(float __x)

1111 { return __builtin_fabsf(__x); }

1112

1113 inline long double

1114 fabs(long double __x)

1115 { return __builtin_fabsl(__x); }

1116#endif

1117#endif

1118

1119 template<typename _Tp>

1120 inline typename __gnu_cxx::__promote<_Tp>::__type

1121 fabs(_Tp __x)

1123

1124#else

1125

1126

1128

1129#endif

1130

1131}

1132_GLIBCXX_END_NAMESPACE_VERSION

1133}

1134

1135

1136

1137

1138

1139

1140

1141

1142#if _GLIBCXX_USE_STD_SPEC_FUNCS

1143

1144namespace std _GLIBCXX_VISIBILITY(default)

1145{

1146_GLIBCXX_BEGIN_NAMESPACE_VERSION

1147

1148namespace tr1

1149{

1153

1157

1161

1165

1169

1173

1177

1181

1185

1189

1193

1197

1201

1205

1209

1213

1217

1221

1225

1229

1233

1234}

1235_GLIBCXX_END_NAMESPACE_VERSION

1236}

1237

1238#else

1239

1242#include <tr1/type_traits>

1243

1244#include <tr1/gamma.tcc>

1245#include <tr1/bessel_function.tcc>

1246#include <tr1/beta_function.tcc>

1247#include <tr1/ell_integral.tcc>

1248#include <tr1/exp_integral.tcc>

1249#include <tr1/legendre_function.tcc>

1250#include <tr1/modified_bessel_func.tcc>

1251#include <tr1/poly_hermite.tcc>

1252#include <tr1/poly_laguerre.tcc>

1253#include <tr1/riemann_zeta.tcc>

1254

1255namespace std _GLIBCXX_VISIBILITY(default)

1256{

1257_GLIBCXX_BEGIN_NAMESPACE_VERSION

1258namespace tr1

1259 {

1260

1261

1262

1263

1264 inline float

1265 assoc_laguerref(unsigned int __n, unsigned int __m, float __x)

1266 { return __detail::__assoc_laguerre(__n, __m, __x); }

1267

1268 inline long double

1269 assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)

1270 {

1271 return __detail::__assoc_laguerre(__n, __m, __x);

1272 }

1273

1274

1275 template<typename _Tp>

1276 inline typename __gnu_cxx::__promote<_Tp>::__type

1278 {

1279 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1280 return __detail::__assoc_laguerre<__type>(__n, __m, __x);

1281 }

1282

1283 inline float

1284 assoc_legendref(unsigned int __l, unsigned int __m, float __x)

1285 { return __detail::__assoc_legendre_p(__l, __m, __x); }

1286

1287 inline long double

1288 assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)

1289 { return __detail::__assoc_legendre_p(__l, __m, __x); }

1290

1291

1292 template<typename _Tp>

1293 inline typename __gnu_cxx::__promote<_Tp>::__type

1295 {

1296 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1297 return __detail::__assoc_legendre_p<__type>(__l, __m, __x);

1298 }

1299

1300 inline float

1301 betaf(float __x, float __y)

1302 { return __detail::__beta(__x, __y); }

1303

1304 inline long double

1305 betal(long double __x, long double __y)

1306 { return __detail::__beta(__x, __y); }

1307

1308

1309 template<typename _Tpx, typename _Tpy>

1310 inline typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type

1312 {

1313 typedef typename __gnu_cxx::__promote_2<_Tpx, _Tpy>::__type __type;

1314 return __detail::__beta<__type>(__x, __y);

1315 }

1316

1317 inline float

1319 { return __detail::__comp_ellint_1(__k); }

1320

1321 inline long double

1322 comp_ellint_1l(long double __k)

1323 { return __detail::__comp_ellint_1(__k); }

1324

1325

1326 template<typename _Tp>

1327 inline typename __gnu_cxx::__promote<_Tp>::__type

1329 {

1330 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1331 return __detail::__comp_ellint_1<__type>(__k);

1332 }

1333

1334 inline float

1336 { return __detail::__comp_ellint_2(__k); }

1337

1338 inline long double

1339 comp_ellint_2l(long double __k)

1340 { return __detail::__comp_ellint_2(__k); }

1341

1342

1343 template<typename _Tp>

1344 inline typename __gnu_cxx::__promote<_Tp>::__type

1346 {

1347 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1348 return __detail::__comp_ellint_2<__type>(__k);

1349 }

1350

1351 inline float

1353 { return __detail::__comp_ellint_3(__k, __nu); }

1354

1355 inline long double

1356 comp_ellint_3l(long double __k, long double __nu)

1357 { return __detail::__comp_ellint_3(__k, __nu); }

1358

1359

1360 template<typename _Tp, typename _Tpn>

1361 inline typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type

1363 {

1364 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpn>::__type __type;

1365 return __detail::__comp_ellint_3<__type>(__k, __nu);

1366 }

1367

1368 inline float

1370 { return __detail::__cyl_bessel_i(__nu, __x); }

1371

1372 inline long double

1373 cyl_bessel_il(long double __nu, long double __x)

1374 { return __detail::__cyl_bessel_i(__nu, __x); }

1375

1376

1377 template<typename _Tpnu, typename _Tp>

1378 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type

1380 {

1381 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;

1382 return __detail::__cyl_bessel_i<__type>(__nu, __x);

1383 }

1384

1385 inline float

1387 { return __detail::__cyl_bessel_j(__nu, __x); }

1388

1389 inline long double

1390 cyl_bessel_jl(long double __nu, long double __x)

1391 { return __detail::__cyl_bessel_j(__nu, __x); }

1392

1393

1394 template<typename _Tpnu, typename _Tp>

1395 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type

1397 {

1398 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;

1399 return __detail::__cyl_bessel_j<__type>(__nu, __x);

1400 }

1401

1402 inline float

1404 { return __detail::__cyl_bessel_k(__nu, __x); }

1405

1406 inline long double

1407 cyl_bessel_kl(long double __nu, long double __x)

1408 { return __detail::__cyl_bessel_k(__nu, __x); }

1409

1410

1411 template<typename _Tpnu, typename _Tp>

1412 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type

1414 {

1415 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;

1416 return __detail::__cyl_bessel_k<__type>(__nu, __x);

1417 }

1418

1419 inline float

1421 { return __detail::__cyl_neumann_n(__nu, __x); }

1422

1423 inline long double

1424 cyl_neumannl(long double __nu, long double __x)

1425 { return __detail::__cyl_neumann_n(__nu, __x); }

1426

1427

1428 template<typename _Tpnu, typename _Tp>

1429 inline typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type

1431 {

1432 typedef typename __gnu_cxx::__promote_2<_Tpnu, _Tp>::__type __type;

1433 return __detail::__cyl_neumann_n<__type>(__nu, __x);

1434 }

1435

1436 inline float

1437 ellint_1f(float __k, float __phi)

1438 { return __detail::__ellint_1(__k, __phi); }

1439

1440 inline long double

1441 ellint_1l(long double __k, long double __phi)

1442 { return __detail::__ellint_1(__k, __phi); }

1443

1444

1445 template<typename _Tp, typename _Tpp>

1446 inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type

1448 {

1449 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;

1450 return __detail::__ellint_1<__type>(__k, __phi);

1451 }

1452

1453 inline float

1454 ellint_2f(float __k, float __phi)

1455 { return __detail::__ellint_2(__k, __phi); }

1456

1457 inline long double

1458 ellint_2l(long double __k, long double __phi)

1459 { return __detail::__ellint_2(__k, __phi); }

1460

1461

1462 template<typename _Tp, typename _Tpp>

1463 inline typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type

1465 {

1466 typedef typename __gnu_cxx::__promote_2<_Tp, _Tpp>::__type __type;

1467 return __detail::__ellint_2<__type>(__k, __phi);

1468 }

1469

1470 inline float

1471 ellint_3f(float __k, float __nu, float __phi)

1472 { return __detail::__ellint_3(__k, __nu, __phi); }

1473

1474 inline long double

1475 ellint_3l(long double __k, long double __nu, long double __phi)

1476 { return __detail::__ellint_3(__k, __nu, __phi); }

1477

1478

1479 template<typename _Tp, typename _Tpn, typename _Tpp>

1480 inline typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type

1481 ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)

1482 {

1483 typedef typename __gnu_cxx::__promote_3<_Tp, _Tpn, _Tpp>::__type __type;

1484 return __detail::__ellint_3<__type>(__k, __nu, __phi);

1485 }

1486

1487 inline float

1489 { return __detail::__expint(__x); }

1490

1491 inline long double

1492 expintl(long double __x)

1493 { return __detail::__expint(__x); }

1494

1495

1496 template<typename _Tp>

1497 inline typename __gnu_cxx::__promote<_Tp>::__type

1499 {

1500 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1501 return __detail::__expint<__type>(__x);

1502 }

1503

1504 inline float

1505 hermitef(unsigned int __n, float __x)

1506 { return __detail::__poly_hermite(__n, __x); }

1507

1508 inline long double

1509 hermitel(unsigned int __n, long double __x)

1510 { return __detail::__poly_hermite(__n, __x); }

1511

1512

1513 template<typename _Tp>

1514 inline typename __gnu_cxx::__promote<_Tp>::__type

1516 {

1517 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1518 return __detail::__poly_hermite<__type>(__n, __x);

1519 }

1520

1521 inline float

1522 laguerref(unsigned int __n, float __x)

1523 { return __detail::__laguerre(__n, __x); }

1524

1525 inline long double

1526 laguerrel(unsigned int __n, long double __x)

1527 { return __detail::__laguerre(__n, __x); }

1528

1529

1530 template<typename _Tp>

1531 inline typename __gnu_cxx::__promote<_Tp>::__type

1533 {

1534 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1535 return __detail::__laguerre<__type>(__n, __x);

1536 }

1537

1538 inline float

1539 legendref(unsigned int __n, float __x)

1540 { return __detail::__poly_legendre_p(__n, __x); }

1541

1542 inline long double

1543 legendrel(unsigned int __n, long double __x)

1544 { return __detail::__poly_legendre_p(__n, __x); }

1545

1546

1547 template<typename _Tp>

1548 inline typename __gnu_cxx::__promote<_Tp>::__type

1550 {

1551 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1552 return __detail::__poly_legendre_p<__type>(__n, __x);

1553 }

1554

1555 inline float

1557 { return __detail::__riemann_zeta(__x); }

1558

1559 inline long double

1560 riemann_zetal(long double __x)

1561 { return __detail::__riemann_zeta(__x); }

1562

1563

1564 template<typename _Tp>

1565 inline typename __gnu_cxx::__promote<_Tp>::__type

1567 {

1568 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1569 return __detail::__riemann_zeta<__type>(__x);

1570 }

1571

1572 inline float

1573 sph_besself(unsigned int __n, float __x)

1574 { return __detail::__sph_bessel(__n, __x); }

1575

1576 inline long double

1577 sph_bessell(unsigned int __n, long double __x)

1578 { return __detail::__sph_bessel(__n, __x); }

1579

1580

1581 template<typename _Tp>

1582 inline typename __gnu_cxx::__promote<_Tp>::__type

1584 {

1585 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1586 return __detail::__sph_bessel<__type>(__n, __x);

1587 }

1588

1589 inline float

1590 sph_legendref(unsigned int __l, unsigned int __m, float __theta)

1591 { return __detail::__sph_legendre(__l, __m, __theta); }

1592

1593 inline long double

1594 sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)

1595 { return __detail::__sph_legendre(__l, __m, __theta); }

1596

1597

1598 template<typename _Tp>

1599 inline typename __gnu_cxx::__promote<_Tp>::__type

1600 sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)

1601 {

1602 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1603 return __detail::__sph_legendre<__type>(__l, __m, __theta);

1604 }

1605

1606 inline float

1608 { return __detail::__sph_neumann(__n, __x); }

1609

1610 inline long double

1611 sph_neumannl(unsigned int __n, long double __x)

1612 { return __detail::__sph_neumann(__n, __x); }

1613

1614

1615 template<typename _Tp>

1616 inline typename __gnu_cxx::__promote<_Tp>::__type

1618 {

1619 typedef typename __gnu_cxx::__promote<_Tp>::__type __type;

1620 return __detail::__sph_neumann<__type>(__n, __x);

1621 }

1622

1623

1624

1625}

1626

1627_GLIBCXX_END_NAMESPACE_VERSION

1628}

1629

1630#endif

1631

1632#if _GLIBCXX_USE_STD_SPEC_FUNCS && !defined(__STRICT_ANSI__)

1633namespace std _GLIBCXX_VISIBILITY(default)

1634{

1635_GLIBCXX_BEGIN_NAMESPACE_VERSION

1636

1637namespace tr1

1638{

1642

1646}

1647

1648_GLIBCXX_END_NAMESPACE_VERSION

1649}

1650

1651#else

1652

1655#include <tr1/type_traits>

1656

1657#include <tr1/hypergeometric.tcc>

1658

1659namespace std _GLIBCXX_VISIBILITY(default)

1660{

1661_GLIBCXX_BEGIN_NAMESPACE_VERSION

1662

1663namespace tr1

1664{

1665

1666

1667

1668

1669 inline float

1670 conf_hypergf(float __a, float __c, float __x)

1671 { return __detail::__conf_hyperg(__a, __c, __x); }

1672

1673 inline long double

1674 conf_hypergl(long double __a, long double __c, long double __x)

1675 { return __detail::__conf_hyperg(__a, __c, __x); }

1676

1677

1678 template<typename _Tpa, typename _Tpc, typename _Tp>

1679 inline typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type

1681 {

1682 typedef typename __gnu_cxx::__promote_3<_Tpa, _Tpc, _Tp>::__type __type;

1683 return __detail::__conf_hyperg<__type>(__a, __c, __x);

1684 }

1685

1686 inline float

1687 hypergf(float __a, float __b, float __c, float __x)

1688 { return __detail::__hyperg(__a, __b, __c, __x); }

1689

1690 inline long double

1691 hypergl(long double __a, long double __b, long double __c, long double __x)

1692 { return __detail::__hyperg(__a, __b, __c, __x); }

1693

1694

1695 template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp>

1696 inline typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type

1697 hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)

1698 {

1699 typedef typename __gnu_cxx::__promote_4<_Tpa, _Tpb, _Tpc, _Tp>::__type __type;

1700 return __detail::__hyperg<__type>(__a, __b, __c, __x);

1701 }

1702

1703

1704

1705}

1706

1707_GLIBCXX_END_NAMESPACE_VERSION

1708}

1709#endif

1710

1711#endif

constexpr enable_if_t< __and_< __is_duration< _ToDur >, __not_< treat_as_floating_point< typename _ToDur::rep > > >::value, _ToDur > round(const duration< _Rep, _Period > &__d)

complex< _Tp > log10(const complex< _Tp > &)

Return complex base 10 logarithm of z.

complex< _Tp > sin(const complex< _Tp > &)

Return complex sine of z.

complex< _Tp > log(const complex< _Tp > &)

Return complex natural logarithm of z.

complex< _Tp > tan(const complex< _Tp > &)

Return complex tangent of z.

complex< _Tp > exp(const complex< _Tp > &)

Return complex base e exponential of z.

complex< _Tp > cosh(const complex< _Tp > &)

Return complex hyperbolic cosine of z.

complex< _Tp > tanh(const complex< _Tp > &)

Return complex hyperbolic tangent of z.

complex< _Tp > pow(const complex< _Tp > &, int)

Return x to the y'th power.

complex< _Tp > sinh(const complex< _Tp > &)

Return complex hyperbolic sine of z.

complex< _Tp > cos(const complex< _Tp > &)

Return complex cosine of z.

complex< _Tp > sqrt(const complex< _Tp > &)

Return complex square root of z.

__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x)

long double conf_hypergl(long double __a, long double __c, long double __x)

long double sph_bessell(unsigned int __n, long double __x)

float betaf(float __a, float __b)

long double expintl(long double __x)

float cyl_bessel_jf(float __nu, float __x)

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x)

float ellint_3f(float __k, float __nu, float __phi)

Return the incomplete elliptic integral of the third kind for float argument.

long double legendrel(unsigned int __l, long double __x)

long double comp_ellint_3l(long double __k, long double __nu)

Return the complete elliptic integral of the third kind for long double modulus k.

long double riemann_zetal(long double __s)

float cyl_bessel_kf(float __nu, float __x)

float comp_ellint_2f(float __k)

long double hermitel(unsigned int __n, long double __x)

__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi)

long double sph_legendrel(unsigned int __l, unsigned int __m, long double __theta)

float ellint_1f(float __k, float __phi)

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x)

float assoc_legendref(unsigned int __l, unsigned int __m, float __x)

long double sph_neumannl(unsigned int __n, long double __x)

__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)

long double comp_ellint_2l(long double __k)

__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k)

float sph_besself(unsigned int __n, float __x)

long double assoc_legendrel(unsigned int __l, unsigned int __m, long double __x)

__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __l, _Tp __x)

float ellint_2f(float __k, float __phi)

Return the incomplete elliptic integral of the second kind for float argument.

__gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type ellint_3(_Tp __k, _Tpn __nu, _Tpp __phi)

Return the incomplete elliptic integral of the third kind .

long double ellint_2l(long double __k, long double __phi)

Return the incomplete elliptic integral of the second kind .

float cyl_neumannf(float __nu, float __x)

__gnu_cxx::__promote_2< _Tpa, _Tpb >::__type beta(_Tpa __a, _Tpb __b)

long double comp_ellint_1l(long double __k)

float comp_ellint_3f(float __k, float __nu)

Return the complete elliptic integral of the third kind for float modulus k.

float sph_neumannf(unsigned int __n, float __x)

__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x)

long double ellint_1l(long double __k, long double __phi)

float comp_ellint_1f(float __k)

long double betal(long double __a, long double __b)

__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)

float hermitef(unsigned int __n, float __x)

__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __s)

long double hypergl(long double __a, long double __b, long double __c, long double __x)

long double ellint_3l(long double __k, long double __nu, long double __phi)

Return the incomplete elliptic integral of the third kind .

float sph_legendref(unsigned int __l, unsigned int __m, float __theta)

__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x)

float cyl_bessel_if(float __nu, float __x)

long double laguerrel(unsigned int __n, long double __x)

long double cyl_bessel_il(long double __nu, long double __x)

__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)

float conf_hypergf(float __a, float __c, float __x)

__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu)

__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)

long double cyl_bessel_kl(long double __nu, long double __x)

float hypergf(float __a, float __b, float __c, float __x)

long double assoc_laguerrel(unsigned int __n, unsigned int __m, long double __x)

__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x)

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x)

float laguerref(unsigned int __n, float __x)

long double cyl_bessel_jl(long double __nu, long double __x)

__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k)

__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi)

__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x)

float legendref(unsigned int __l, float __x)

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x)

__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)

float assoc_laguerref(unsigned int __n, unsigned int __m, float __x)

long double cyl_neumannl(long double __nu, long double __x)

float riemann_zetaf(float __s)

__gnu_cxx::__promote_2< _Tp, _Tpn >::__type comp_ellint_3(_Tp __k, _Tpn __nu)

5.2.1.6 Complete elliptic integrals of the third kind.

__gnu_cxx::__promote< _Tp >::__type expint(_Tp __x)

5.2.1.15 Exponential integrals.

__gnu_cxx::__promote< _Tp >::__type assoc_legendre(unsigned int __l, unsigned int __m, _Tp __x)

5.2.1.2 Associated Legendre functions.

__gnu_cxx::__promote< _Tp >::__type comp_ellint_1(_Tp __k)

5.2.1.4 Complete elliptic integrals of the first kind.

__gnu_cxx::__promote< _Tp >::__type sph_bessel(unsigned int __n, _Tp __x)

5.2.1.21 Spherical Bessel functions.

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_neumann(_Tpnu __nu, _Tp __x)

5.2.1.11 Cylindrical Neumann functions.

__gnu_cxx::__promote< _Tp >::__type assoc_laguerre(unsigned int __n, unsigned int __m, _Tp __x)

5.2.1.1 Associated Laguerre polynomials.

__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_2(_Tp __k, _Tpp __phi)

5.2.1.13 Incomplete elliptic integrals of the second kind.

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_j(_Tpnu __nu, _Tp __x)

5.2.1.9 Cylindrical Bessel functions (of the first kind).

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_i(_Tpnu __nu, _Tp __x)

5.2.1.8 Regular modified cylindrical Bessel functions.

__gnu_cxx::__promote< _Tp >::__type riemann_zeta(_Tp __x)

5.2.1.20 Riemann zeta function.

__gnu_cxx::__promote_2< _Tpx, _Tpy >::__type beta(_Tpx __x, _Tpy __y)

5.2.1.3 Beta functions.

__gnu_cxx::__promote_2< _Tpnu, _Tp >::__type cyl_bessel_k(_Tpnu __nu, _Tp __x)

5.2.1.10 Irregular modified cylindrical Bessel functions.

__gnu_cxx::__promote_2< _Tp, _Tpp >::__type ellint_1(_Tp __k, _Tpp __phi)

5.2.1.12 Incomplete elliptic integrals of the first kind.

__gnu_cxx::__promote< _Tp >::__type comp_ellint_2(_Tp __k)

5.2.1.5 Complete elliptic integrals of the second kind.

__gnu_cxx::__promote< _Tp >::__type legendre(unsigned int __n, _Tp __x)

5.2.1.19 Legendre polynomials.

__gnu_cxx::__promote< _Tp >::__type hermite(unsigned int __n, _Tp __x)

5.2.1.16 Hermite polynomials.

__gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type conf_hyperg(_Tpa __a, _Tpc __c, _Tp __x)

5.2.1.7 Confluent hypergeometric functions.

__gnu_cxx::__promote< _Tp >::__type sph_neumann(unsigned int __n, _Tp __x)

5.2.1.23 Spherical Neumann functions.

__gnu_cxx::__promote< _Tp >::__type sph_legendre(unsigned int __l, unsigned int __m, _Tp __theta)

5.2.1.22 Spherical associated Legendre functions.

__gnu_cxx::__promote< _Tp >::__type laguerre(unsigned int __n, _Tp __x)

5.2.1.18 Laguerre polynomials.

__gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type hyperg(_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x)

5.2.1.17 Hypergeometric functions.

ISO C++ entities toplevel namespace is std.

_Tp fabs(const std::complex< _Tp > &)

fabs(__z) [8.1.8].