Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Fix the data types for the function sq() #991

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
edgar-bonet wants to merge 1 commit into arduino:master
base: master
Choose a base branch
Loading
from edgar-bonet:sq-type

Conversation

Copy link
Contributor

@edgar-bonet edgar-bonet commented Oct 14, 2024

The current description states that the argument of sq() can have "any data type", whereas only numeric types can be used.

The current description states that the returned value is a "double", but this is only true if the argument is itself a double.

This pull request attempts to fix the types. It is, however, impossible to give a completely accurate description of the returned type without fully stating all the C++ rules of integral promotion, and this would be too much for the intended audience.

As a compromise, the proposed description is:

Data type: int if the argument type is smaller than an int (e.g. char), otherwise the returned value has the same type as the argument.

This captures the gist of integral promotion, and should be accurate on ILP32 (ARM). On IP16 (AVR), however, this simplified description implies that sq(short_var) is a short, whereas it is actually an int. I deem the inaccuracy acceptable given that, on IP16, short and int are basically the same thing (they have the same underlying representation).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /