Skip to content

Incorrect return value from math.h tgammaf(-inf) (IDFGH-13360) #14273

Closed
@projectgus

Description

@projectgus

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v5.4-dev-1832-g23e4823f17, v5.0.4 and v5.2.2

Espressif SoC revision.

ESP32 and ESP32-C3

Operating System used.

Linux

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

None

Development Kit.

ESP32-DevKitC, others

Power Supply used.

USB

What is the expected behavior?

Expect the result of tgammaf(-inf) to be NAN. (See https://pubs.opengroup.org/onlinepubs/9799919799/functions/tgammal.html and the C standard.)

This is a very similar issue to #7282 but applies to the single precision tgammaf() function.

What is the actual behavior?

Result of tgammaf(-inf) is inf

Steps to reproduce.

  1. Add these two lines to a program such as the hello_world example:
printf("tgamma(-inf) = %f\n", tgamma(-INFINITY));
printf("tgammaf(-inf) = %f\n", tgammaf(-INFINITY));

Note the first line is the double-precision function that was fixed in #7282, second line is single-precision function.

  1. Flash and execute.

Debug Logs.

tgamma(-inf) = nan
tgammaf(-inf) = inf

More Information.

Thanks for your time and attention. 😁

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions