trunc, truncf, truncl

From Get docs
< Numerics‎ | mathC/docs/latest/numeric/math/trunc


trunc, truncf, truncl

Defined in header <math.h>
float       truncf( float arg );
(1) (since C99)
double      trunc( double arg );
(2) (since C99)
long double truncl( long double arg );
(3) (since C99)
Defined in header <tgmath.h>
#define trunc( arg )
(4) (since C99)

1-3) Computes the nearest integer not greater in magnitude than arg.

4) Type-generic macro: If arg has type long double, truncl is called. Otherwise, if arg has integer type or the type double, trunc is called. Otherwise, truncf is called.

Parameters

arg - floating point value

Return value

If no errors occur, the nearest integer value not greater in magnitude than arg (in other words, arg rounded towards zero), is returned.

Return value

[[../File:data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjwhLS0gQ3JlYXRlZCB3aXRoIG1hdHBsb3RsaWIgKGh0dHA6Ly9tYXRwbG90bGliLnNvdXJjZWZvcmdlLm5ldC8pIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGhlaWdodD0iMjAwcHgiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDIwMCAyMDAiIHdpZHRoPSIyMDBweCI+CiA8ZGVmcz4KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoqe3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46cm91bmQ7fQogIDwvc3R5bGU+CiA8L2RlZnM+CiA8ZyBpZD0iZmlndXJlXzEiPgogIDxnIGlkPSJwYXRjaF8xIj4KICAgPHBhdGggZD0iIE0wIDIwMCBMMjAwIDIwMCBMMjAwIDAgTDAgMCB6ICIgc3R5bGU9ImZpbGw6I2ZmZmZmZjsiLz4KICA8L2c+CiAgPGcgaWQ9ImF4ZXNfMSI+CiAgIDxnIGlkPSJwYXRjaF8yIj4KICAgIDxwYXRoIGQ9IiBNMjUgMTc3LjUgTDE4MCAxNzcuNSBMMTgwIDIyLjUgTDI1IDIyLjUgeiAiIHN0eWxlPSJmaWxsOiNmZmZmZmY7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Im1hdHBsb3RsaWIuYXhpc18xIj4KICAgIDxnIGlkPSJ4dGlja18xIj4KICAgICA8ZyBpZD0ibGluZTJkXzEiPgogICAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTM2LjA3MTQgMTc3LjUgTDM2LjA3MTQgMjIuNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtZGFzaGFycmF5OjEuMDAwMDAwLDMuMDAwMDAwO3N0cm9rZS1kYXNob2Zmc2V0OjAuMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMiI+CiAgICAgIDxkZWZzPgogICAgICAgPHBhdGggZD0iIE0wIDAgTDAgLTQiIGlkPSJtMDAxMmRkNGVlZiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICAgPC9kZWZzPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjM2LjA3MTQyODU3MTQiIHhsaW5rOmhyZWY9IiNtMDAxMmRkNGVlZiIgeT0iMTc3LjUiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzMiPgogICAgICA8ZGVmcz4KICAgICAgIDxwYXRoIGQ9IiBNMCAwIEwwIDQiIGlkPSJtNDc2MzQ0OTY5YyIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICAgPC9kZWZzPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjM2LjA3MTQyODU3MTQiIHhsaW5rOmhyZWY9IiNtNDc2MzQ0OTY5YyIgeT0iMjIuNSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzEiPgogICAgICA8IS0tIOKIkjMgLS0+CiAgICAgIDxkZWZzPgogICAgICAgPHBhdGggZD0iIE00MC41NzgxIDM5LjMxMjUgUTQ3LjY1NjIgMzcuNzk2OSA1MS42MjUgMzMgUTU1LjYwOTQgMjguMjE4OCA1NS42MDk0IDIxLjE4NzUgUTU1LjYwOTQgMTAuNDA2MiA0OC4xODc1IDQuNDg0MzggUTQwLjc2NTYgLTEuNDIxODggMjcuMDkzOCAtMS40MjE4OCBRMjIuNTE1NiAtMS40MjE4OCAxNy42NTYyIC0wLjUxNTYyNSBRMTIuNzk2OSAwLjM5MDYyNSA3LjYyNSAyLjIwMzEyIEw3LjYyNSAxMS43MTg4IFExMS43MTg4IDkuMzI4MTIgMTYuNTkzOCA4LjEwOTM4IFEyMS40ODQ0IDYuODkwNjIgMjYuODEyNSA2Ljg5MDYyIFEzNi4wNzgxIDYuODkwNjIgNDAuOTM3NSAxMC41NDY5IFE0NS43OTY5IDE0LjIwMzEgNDUuNzk2OSAyMS4xODc1IFE0NS43OTY5IDI3LjY0MDYgNDEuMjgxMiAzMS4yNjU2IFEzNi43NjU2IDM0LjkwNjIgMjguNzE4OCAzNC45MDYyIEwyMC4yMTg4IDM0LjkwNjIgTDIwLjIxODggNDMuMDE1NiBMMjkuMTA5NCA0My4wMTU2IFEzNi4zNzUgNDMuMDE1NiA0MC4yMzQ0IDQ1LjkyMTkgUTQ0LjA5MzggNDguODI4MSA0NC4wOTM4IDU0LjI5NjkgUTQ0LjA5MzggNTkuOTA2MiA0MC4xMDk0IDYyLjkwNjIgUTM2LjE0MDYgNjUuOTIxOSAyOC43MTg4IDY1LjkyMTkgUTI0LjY1NjIgNjUuOTIxOSAyMC4wMTU2IDY1LjAzMTIgUTE1LjM3NSA2NC4xNTYyIDkuODEyNSA2Mi4zMTI1IEw5LjgxMjUgNzEuMDkzOCBRMTUuNDM3NSA3Mi42NTYyIDIwLjM0MzggNzMuNDM3NSBRMjUuMjUgNzQuMjE4OCAyOS41OTM4IDc0LjIxODggUTQwLjgyODEgNzQuMjE4OCA0Ny4zNTk0IDY5LjEwOTQgUTUzLjkwNjIgNjQuMDE1NiA1My45MDYyIDU1LjMyODEgUTUzLjkwNjIgNDkuMjY1NiA1MC40Mzc1IDQ1LjA5MzggUTQ2Ljk2ODggNDAuOTIxOSA0MC41NzgxIDM5LjMxMjUiIGlkPSJEZWphVnVTYW5zLTMzIi8+CiAgICAgICA8cGF0aCBkPSIgTTEwLjU5MzggMzUuNSBMNzMuMTg3NSAzNS41IEw3My4xODc1IDI3LjIwMzEgTDEwLjU5MzggMjcuMjAzMSB6ICIgaWQ9IkRlamFWdVNhbnMtMjIxMiIvPgogICAgICA8L2RlZnM+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwLjI3NDg2NjA3MTQgMTkxLjY3OTY4NzUpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yMjEyIi8+CiAgICAgICA8dXNlIHg9IjgzLjc4OTA2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMzIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieHRpY2tfMiI+CiAgICAgPGcgaWQ9ImxpbmUyZF80Ij4KICAgICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE01OC4yMTQzIDE3Ny41IEw1OC4yMTQzIDIyLjUiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWRhc2hhcnJheToxLjAwMDAwMCwzLjAwMDAwMDtzdHJva2UtZGFzaG9mZnNldDowLjA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIvPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzUiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjU4LjIxNDI4NTcxNDMiIHhsaW5rOmhyZWY9IiNtMDAxMmRkNGVlZiIgeT0iMTc3LjUiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzYiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjU4LjIxNDI4NTcxNDMiIHhsaW5rOmhyZWY9IiNtNDc2MzQ0OTY5YyIgeT0iMjIuNSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzIiPgogICAgICA8IS0tIOKIkjIgLS0+CiAgICAgIDxkZWZzPgogICAgICAgPHBhdGggZD0iIE0xOS4xODc1IDguMjk2ODggTDUzLjYwOTQgOC4yOTY4OCBMNTMuNjA5NCAwIEw3LjMyODEyIDAgTDcuMzI4MTIgOC4yOTY4OCBRMTIuOTM3NSAxNC4xMDk0IDIyLjYyNSAyMy44OTA2IFEzMi4zMjgxIDMzLjY4NzUgMzQuODEyNSAzNi41MzEyIFEzOS41NDY5IDQxLjg0MzggNDEuNDIxOSA0NS41MzEyIFE0My4zMTI1IDQ5LjIxODggNDMuMzEyNSA1Mi43ODEyIFE0My4zMTI1IDU4LjU5MzggMzkuMjM0NCA2Mi4yNSBRMzUuMTU2MiA2NS45MjE5IDI4LjYwOTQgNjUuOTIxOSBRMjMuOTY4OCA2NS45MjE5IDE4LjgxMjUgNjQuMzEyNSBRMTMuNjcxOSA2Mi43MDMxIDcuODEyNSA1OS40MjE5IEw3LjgxMjUgNjkuMzkwNiBRMTMuNzY1NiA3MS43ODEyIDE4LjkzNzUgNzMgUTI0LjEyNSA3NC4yMTg4IDI4LjQyMTkgNzQuMjE4OCBRMzkuNzUgNzQuMjE4OCA0Ni40ODQ0IDY4LjU0NjkgUTUzLjIxODggNjIuODkwNiA1My4yMTg4IDUzLjQyMTkgUTUzLjIxODggNDguOTIxOSA1MS41MzEyIDQ0Ljg5MDYgUTQ5Ljg1OTQgNDAuODc1IDQ1LjQwNjIgMzUuNDA2MiBRNDQuMTg3NSAzMy45ODQ0IDM3LjY0MDYgMjcuMjE4OCBRMzEuMTA5NCAyMC40NTMxIDE5LjE4NzUgOC4yOTY4OCIgaWQ9IkRlamFWdVNhbnMtMzIiLz4KICAgICAgPC9kZWZzPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1Mi41MDc3MjMyMTQzIDE5MS42Nzk2ODc1KXNjYWxlKDAuMDkgLTAuMDkpIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMjIxMiIvPgogICAgICAgPHVzZSB4PSI4My43ODkwNjI1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMiIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inh0aWNrXzMiPgogICAgIDxnIGlkPSJsaW5lMmRfNyI+CiAgICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNODAuMzU3MSAxNzcuNSBMODAuMzU3MSAyMi41IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1kYXNoYXJyYXk6MS4wMDAwMDAsMy4wMDAwMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MC4wO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF84Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSI4MC4zNTcxNDI4NTcxIiB4bGluazpocmVmPSIjbTAwMTJkZDRlZWYiIHk9IjE3Ny41Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF85Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSI4MC4zNTcxNDI4NTcxIiB4bGluazpocmVmPSIjbTQ3NjM0NDk2OWMiIHk9IjIyLjUiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF8zIj4KICAgICAgPCEtLSDiiJIxIC0tPgogICAgICA8ZGVmcz4KICAgICAgIDxwYXRoIGQ9IiBNMTIuNDA2MiA4LjI5Njg4IEwyOC41MTU2IDguMjk2ODggTDI4LjUxNTYgNjMuOTIxOSBMMTAuOTg0NCA2MC40MDYyIEwxMC45ODQ0IDY5LjM5MDYgTDI4LjQyMTkgNzIuOTA2MiBMMzguMjgxMiA3Mi45MDYyIEwzOC4yODEyIDguMjk2ODggTDU0LjM5MDYgOC4yOTY4OCBMNTQuMzkwNiAwIEwxMi40MDYyIDAgeiAiIGlkPSJEZWphVnVTYW5zLTMxIi8+CiAgICAgIDwvZGVmcz4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzQuNjE1NDI0MTA3MSAxOTEuNTYxNTYyNSlzY2FsZSgwLjA5IC0wLjA5KSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiLz4KICAgICAgIDx1c2UgeD0iODMuNzg5MDYyNSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzEiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ4dGlja180Ij4KICAgICA8ZyBpZD0ibGluZTJkXzEwIj4KICAgICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE0xMDIuNSAxNzcuNSBMMTAyLjUgMjIuNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtZGFzaGFycmF5OjEuMDAwMDAwLDMuMDAwMDAwO3N0cm9rZS1kYXNob2Zmc2V0OjAuMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMTEiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjEwMi41IiB4bGluazpocmVmPSIjbTAwMTJkZDRlZWYiIHk9IjE3Ny41Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8xMiI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTAyLjUiIHhsaW5rOmhyZWY9IiNtNDc2MzQ0OTY5YyIgeT0iMjIuNSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzQiPgogICAgICA8IS0tIDAgLS0+CiAgICAgIDxkZWZzPgogICAgICAgPHBhdGggZD0iIE0zMS43ODEyIDY2LjQwNjIgUTI0LjE3MTkgNjYuNDA2MiAyMC4zMjgxIDU4LjkwNjIgUTE2LjUgNTEuNDIxOSAxNi41IDM2LjM3NSBRMTYuNSAyMS4zOTA2IDIwLjMyODEgMTMuODkwNiBRMjQuMTcxOSA2LjM5MDYyIDMxLjc4MTIgNi4zOTA2MiBRMzkuNDUzMSA2LjM5MDYyIDQzLjI4MTIgMTMuODkwNiBRNDcuMTI1IDIxLjM5MDYgNDcuMTI1IDM2LjM3NSBRNDcuMTI1IDUxLjQyMTkgNDMuMjgxMiA1OC45MDYyIFEzOS40NTMxIDY2LjQwNjIgMzEuNzgxMiA2Ni40MDYyIE0zMS43ODEyIDc0LjIxODggUTQ0LjA0NjkgNzQuMjE4OCA1MC41MTU2IDY0LjUxNTYgUTU2Ljk4NDQgNTQuODI4MSA1Ni45ODQ0IDM2LjM3NSBRNTYuOTg0NCAxNy45Njg4IDUwLjUxNTYgOC4yNjU2MiBRNDQuMDQ2OSAtMS40MjE4OCAzMS43ODEyIC0xLjQyMTg4IFExOS41MzEyIC0xLjQyMTg4IDEzLjA2MjUgOC4yNjU2MiBRNi41OTM3NSAxNy45Njg4IDYuNTkzNzUgMzYuMzc1IFE2LjU5Mzc1IDU0LjgyODEgMTMuMDYyNSA2NC41MTU2IFExOS41MzEyIDc0LjIxODggMzEuNzgxMiA3NC4yMTg4IiBpZD0iRGVqYVZ1U2Fucy0zMCIvPgogICAgICA8L2RlZnM+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMC4yMzI0MjE4NzUgMTkxLjY3OTY4NzUpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inh0aWNrXzUiPgogICAgIDxnIGlkPSJsaW5lMmRfMTMiPgogICAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTEyNC42NDMgMTc3LjUgTDEyNC42NDMgMjIuNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtZGFzaGFycmF5OjEuMDAwMDAwLDMuMDAwMDAwO3N0cm9rZS1kYXNob2Zmc2V0OjAuMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMTQiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjEyNC42NDI4NTcxNDMiIHhsaW5rOmhyZWY9IiNtMDAxMmRkNGVlZiIgeT0iMTc3LjUiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzE1Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIxMjQuNjQyODU3MTQzIiB4bGluazpocmVmPSIjbTQ3NjM0NDk2OWMiIHk9IjIyLjUiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF81Ij4KICAgICAgPCEtLSAxIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjIuNjg5NTc1ODkzIDE5MS41NjE1NjI1KXNjYWxlKDAuMDkgLTAuMDkpIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzEiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ4dGlja182Ij4KICAgICA8ZyBpZD0ibGluZTJkXzE2Ij4KICAgICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE0xNDYuNzg2IDE3Ny41IEwxNDYuNzg2IDIyLjUiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWRhc2hhcnJheToxLjAwMDAwMCwzLjAwMDAwMDtzdHJva2UtZGFzaG9mZnNldDowLjA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIvPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzE3Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIxNDYuNzg1NzE0Mjg2IiB4bGluazpocmVmPSIjbTAwMTJkZDRlZWYiIHk9IjE3Ny41Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8xOCI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTQ2Ljc4NTcxNDI4NiIgeGxpbms6aHJlZj0iI200NzYzNDQ5NjljIiB5PSIyMi41Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfNiI+CiAgICAgIDwhLS0gMiAtLT4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQ0LjcwMzA1ODAzNiAxOTEuNjc5Njg3NSlzY2FsZSgwLjA5IC0wLjA5KSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMyIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieHRpY2tfNyI+CiAgICAgPGcgaWQ9ImxpbmUyZF8xOSI+CiAgICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMTY4LjkyOSAxNzcuNSBMMTY4LjkyOSAyMi41IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1kYXNoYXJyYXk6MS4wMDAwMDAsMy4wMDAwMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MC4wO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8yMCI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTY4LjkyODU3MTQyOSIgeGxpbms6aHJlZj0iI20wMDEyZGQ0ZWVmIiB5PSIxNzcuNSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMjEiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjE2OC45Mjg1NzE0MjkiIHhsaW5rOmhyZWY9IiNtNDc2MzQ0OTY5YyIgeT0iMjIuNSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzciPgogICAgICA8IS0tIDMgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2Ni43NjkyNzQ1NTQgMTkxLjY3OTY4NzUpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMyIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJtYXRwbG90bGliLmF4aXNfMiI+CiAgICA8ZyBpZD0ieXRpY2tfMSI+CiAgICAgPGcgaWQ9ImxpbmUyZF8yMiI+CiAgICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMjUgMTY2LjQyOSBMMTgwIDE2Ni40MjkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWRhc2hhcnJheToxLjAwMDAwMCwzLjAwMDAwMDtzdHJva2UtZGFzaG9mZnNldDowLjA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIvPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzIzIj4KICAgICAgPGRlZnM+CiAgICAgICA8cGF0aCBkPSIgTTAgMCBMNCAwIiBpZD0ibWU4YTg1ZjdiZjYiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgICAgIDwvZGVmcz4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIyNS4wIiB4bGluazpocmVmPSIjbWU4YTg1ZjdiZjYiIHk9IjE2Ni40Mjg1NzE0MjkiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzI0Ij4KICAgICAgPGRlZnM+CiAgICAgICA8cGF0aCBkPSIgTTAgMCBMLTQgMCIgaWQ9Im0xYTMyMDA1ZGVhIiBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIvPgogICAgICA8L2RlZnM+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTgwLjAiIHhsaW5rOmhyZWY9IiNtMWEzMjAwNWRlYSIgeT0iMTY2LjQyODU3MTQyOSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzgiPgogICAgICA8IS0tIOKIkjMgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUuOTA2ODc1IDE2OS43MDQ0MzA4MDQpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yMjEyIi8+CiAgICAgICA8dXNlIHg9IjgzLjc4OTA2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMzIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieXRpY2tfMiI+CiAgICAgPGcgaWQ9ImxpbmUyZF8yNSI+CiAgICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMjUgMTQ0LjI4NiBMMTgwIDE0NC4yODYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWRhc2hhcnJheToxLjAwMDAwMCwzLjAwMDAwMDtzdHJva2UtZGFzaG9mZnNldDowLjA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIvPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzI2Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIyNS4wIiB4bGluazpocmVmPSIjbWU4YTg1ZjdiZjYiIHk9IjE0NC4yODU3MTQyODYiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0ibGluZTJkXzI3Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIxODAuMCIgeGxpbms6aHJlZj0iI20xYTMyMDA1ZGVhIiB5PSIxNDQuMjg1NzE0Mjg2Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfOSI+CiAgICAgIDwhLS0g4oiSMiAtLT4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi4wODY4NzUgMTQ3LjYyNTU1ODAzNilzY2FsZSgwLjA5IC0wLjA5KSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTIyMTIiLz4KICAgICAgIDx1c2UgeD0iODMuNzg5MDYyNSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzIiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ5dGlja18zIj4KICAgICA8ZyBpZD0ibGluZTJkXzI4Ij4KICAgICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE0yNSAxMjIuMTQzIEwxODAgMTIyLjE0MyIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtZGFzaGFycmF5OjEuMDAwMDAwLDMuMDAwMDAwO3N0cm9rZS1kYXNob2Zmc2V0OjAuMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMjkiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjI1LjAiIHhsaW5rOmhyZWY9IiNtZThhODVmN2JmNiIgeT0iMTIyLjE0Mjg1NzE0MyIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMzAiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjE4MC4wIiB4bGluazpocmVmPSIjbTFhMzIwMDVkZWEiIHk9IjEyMi4xNDI4NTcxNDMiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF8xMCI+CiAgICAgIDwhLS0g4oiSMSAtLT4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi4wMTY1NjI1IDEyNS40MjM2MzgzOTMpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0yMjEyIi8+CiAgICAgICA8dXNlIHg9IjgzLjc4OTA2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMxIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieXRpY2tfNCI+CiAgICAgPGcgaWQ9ImxpbmUyZF8zMSI+CiAgICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMjUgMTAwIEwxODAgMTAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1kYXNoYXJyYXk6MS4wMDAwMDAsMy4wMDAwMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MC4wO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8zMiI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMjUuMCIgeGxpbms6aHJlZj0iI21lOGE4NWY3YmY2IiB5PSIxMDAuMCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJsaW5lMmRfMzMiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjE4MC4wIiB4bGluazpocmVmPSIjbTFhMzIwMDVkZWEiIHk9IjEwMC4wIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfMTEiPgogICAgICA8IS0tIDAgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjk2NDg0Mzc1IDEwMy4yNzU4NTkzNzUpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inl0aWNrXzUiPgogICAgIDxnIGlkPSJsaW5lMmRfMzQiPgogICAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTI1IDc3Ljg1NzEgTDE4MCA3Ny44NTcxIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1kYXNoYXJyYXk6MS4wMDAwMDAsMy4wMDAwMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MC4wO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8zNSI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMjUuMCIgeGxpbms6aHJlZj0iI21lOGE4NWY3YmY2IiB5PSI3Ny44NTcxNDI4NTcxIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8zNiI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTgwLjAiIHhsaW5rOmhyZWY9IiNtMWEzMjAwNWRlYSIgeT0iNzcuODU3MTQyODU3MSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzEyIj4KICAgICAgPCEtLSAxIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy41OTM0Mzc1IDgxLjEzNzkyNDEwNzEpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inl0aWNrXzYiPgogICAgIDxnIGlkPSJsaW5lMmRfMzciPgogICAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTI1IDU1LjcxNDMgTDE4MCA1NS43MTQzIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1kYXNoYXJyYXk6MS4wMDAwMDAsMy4wMDAwMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MC4wO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8zOCI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMjUuMCIgeGxpbms6aHJlZj0iI21lOGE4NWY3YmY2IiB5PSI1NS43MTQyODU3MTQzIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF8zOSI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTgwLjAiIHhsaW5rOmhyZWY9IiNtMWEzMjAwNWRlYSIgeT0iNTUuNzE0Mjg1NzE0MyIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzEzIj4KICAgICAgPCEtLSAyIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy4zMzQ2ODc1IDU5LjA1NDEyOTQ2NDMpc2NhbGUoMC4wOSAtMC4wOSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMiIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inl0aWNrXzciPgogICAgIDxnIGlkPSJsaW5lMmRfNDAiPgogICAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTI1IDMzLjU3MTQgTDE4MCAzMy41NzE0IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1kYXNoYXJyYXk6MS4wMDAwMDAsMy4wMDAwMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MC4wO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF80MSI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMjUuMCIgeGxpbms6aHJlZj0iI21lOGE4NWY3YmY2IiB5PSIzMy41NzE0Mjg1NzE0Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9ImxpbmUyZF80MiI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTgwLjAiIHhsaW5rOmhyZWY9IiNtMWEzMjAwNWRlYSIgeT0iMzMuNTcxNDI4NTcxNCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzE0Ij4KICAgICAgPCEtLSAzIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMy4xODE0MDYyNSAzNi44NDcyODc5NDY0KXNjYWxlKDAuMDkgLTAuMDkpIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMzMiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzQzIj4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMjQuNTU3MSAxNjYuNDI5IEwzNi4wNzE0IDE2Ni40MjkiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzQ0Ij4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMzYuMDcxNCAxNDQuMjg2IEw1OC4yMTQzIDE0NC4yODYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzQ1Ij4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNNTguMjE0MyAxMjIuMTQzIEw4MC4zNTcxIDEyMi4xNDMiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzQ2Ij4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNODAuMzU3MSAxMDAgTDEyNC42NDMgMTAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF80NyI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTEyNC42NDMgNzcuODU3MSBMMTQ2Ljc4NiA3Ny44NTcxIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF80OCI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTE0Ni43ODYgNTUuNzE0MyBMMTY4LjkyOSA1NS43MTQzIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmO3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF80OSI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTE2OC45MjkgMzMuNTcxNCBMMTgwIDMzLjU3MTQiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLXdpZHRoOjAuNTsiLz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzUwIj4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMzYuMDcxNCAxNjYuNDI5IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMGZmOyIvPgogICAgPGRlZnM+CiAgICAgPHBhdGggZD0iIE0wIDMuNzUgQzAuOTk0NTEyIDMuNzUgMS45NDg0MiAzLjM1NDg4IDIuNjUxNjUgMi42NTE2NSBDMy4zNTQ4OCAxLjk0ODQyIDMuNzUgMC45OTQ1MTIgMy43NSAwIEMzLjc1IC0wLjk5NDUxMiAzLjM1NDg4IC0xLjk0ODQyIDIuNjUxNjUgLTIuNjUxNjUgQzEuOTQ4NDIgLTMuMzU0ODggMC45OTQ1MTIgLTMuNzUgMCAtMy43NSBDLTAuOTk0NTEyIC0zLjc1IC0xLjk0ODQyIC0zLjM1NDg4IC0yLjY1MTY1IC0yLjY1MTY1IEMtMy4zNTQ4OCAtMS45NDg0MiAtMy43NSAtMC45OTQ1MTIgLTMuNzUgMCBDLTMuNzUgMC45OTQ1MTIgLTMuMzU0ODggMS45NDg0MiAtMi42NTE2NSAyLjY1MTY1IEMtMS45NDg0MiAzLjM1NDg4IC0wLjk5NDUxMiAzLjc1IDAgMy43NSB6ICIgaWQ9Im1lNTNiN2JiNmQyIiBzdHlsZT0ic3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIvPgogICAgPC9kZWZzPgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSI+CiAgICAgPHVzZSBzdHlsZT0iZmlsbDojMDAwMGZmO3N0cm9rZTojMDAwMGZmO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjM2LjA3MTQyODU3MTQiIHhsaW5rOmhyZWY9IiNtZTUzYjdiYjZkMiIgeT0iMTY2LjQyODU3MTQyOSIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfNTEiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE0zNi4wNzE0IDE0NC4yODYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDgwMDA7Ii8+CiAgICA8ZGVmcz4KICAgICA8cGF0aCBkPSIgTTAgMy43NSBDMC45OTQ1MTIgMy43NSAxLjk0ODQyIDMuMzU0ODggMi42NTE2NSAyLjY1MTY1IEMzLjM1NDg4IDEuOTQ4NDIgMy43NSAwLjk5NDUxMiAzLjc1IDAgQzMuNzUgLTAuOTk0NTEyIDMuMzU0ODggLTEuOTQ4NDIgMi42NTE2NSAtMi42NTE2NSBDMS45NDg0MiAtMy4zNTQ4OCAwLjk5NDUxMiAtMy43NSAwIC0zLjc1IEMtMC45OTQ1MTIgLTMuNzUgLTEuOTQ4NDIgLTMuMzU0ODggLTIuNjUxNjUgLTIuNjUxNjUgQy0zLjM1NDg4IC0xLjk0ODQyIC0zLjc1IC0wLjk5NDUxMiAtMy43NSAwIEMtMy43NSAwLjk5NDUxMiAtMy4zNTQ4OCAxLjk0ODQyIC0yLjY1MTY1IDIuNjUxNjUgQy0xLjk0ODQyIDMuMzU0ODggLTAuOTk0NTEyIDMuNzUgMCAzLjc1IHogIiBpZD0ibWUyNzgwNjQyZTIiIHN0eWxlPSJzdHJva2U6IzAwMDBmZjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7Ii8+CiAgICA8L2RlZnM+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIj4KICAgICA8dXNlIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMzYuMDcxNDI4NTcxNCIgeGxpbms6aHJlZj0iI21lMjc4MDY0MmUyIiB5PSIxNDQuMjg1NzE0Mjg2Ii8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF81MiI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTU4LjIxNDMgMTQ0LjI4NiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmMDAwMDsiLz4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiPgogICAgIDx1c2Ugc3R5bGU9ImZpbGw6IzAwMDBmZjtzdHJva2U6IzAwMDBmZjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSI1OC4yMTQyODU3MTQzIiB4bGluazpocmVmPSIjbWU1M2I3YmI2ZDIiIHk9IjE0NC4yODU3MTQyODYiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzUzIj4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNNTguMjE0MyAxMjIuMTQzIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDBiZmJmOyIvPgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSI+CiAgICAgPHVzZSBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojMDAwMGZmO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjU4LjIxNDI4NTcxNDMiIHhsaW5rOmhyZWY9IiNtZTI3ODA2NDJlMiIgeT0iMTIyLjE0Mjg1NzE0MyIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfNTQiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE04MC4zNTcxIDEyMi4xNDMiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNiZjAwYmY7Ii8+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIj4KICAgICA8dXNlIHN0eWxlPSJmaWxsOiMwMDAwZmY7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iODAuMzU3MTQyODU3MSIgeGxpbms6aHJlZj0iI21lNTNiN2JiNmQyIiB5PSIxMjIuMTQyODU3MTQzIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF81NSI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTgwLjM1NzEgMTAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojYmZiZjAwOyIvPgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSI+CiAgICAgPHVzZSBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojMDAwMGZmO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjgwLjM1NzE0Mjg1NzEiIHhsaW5rOmhyZWY9IiNtZTI3ODA2NDJlMiIgeT0iMTAwLjAiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzU2Ij4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMTI0LjY0MyAxMDAiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7Ii8+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIj4KICAgICA8dXNlIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTI0LjY0Mjg1NzE0MyIgeGxpbms6aHJlZj0iI21lMjc4MDY0MmUyIiB5PSIxMDAuMCIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfNTciPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE0xMjQuNjQzIDc3Ljg1NzEiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwZmY7Ii8+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIj4KICAgICA8dXNlIHN0eWxlPSJmaWxsOiMwMDAwZmY7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTI0LjY0Mjg1NzE0MyIgeGxpbms6aHJlZj0iI21lNTNiN2JiNmQyIiB5PSI3Ny44NTcxNDI4NTcxIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF81OCI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTE0Ni43ODYgNzcuODU3MSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwODAwMDsiLz4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiPgogICAgIDx1c2Ugc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6IzAwMDBmZjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIxNDYuNzg1NzE0Mjg2IiB4bGluazpocmVmPSIjbWUyNzgwNjQyZTIiIHk9Ijc3Ljg1NzE0Mjg1NzEiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0ibGluZTJkXzU5Ij4KICAgIDxwYXRoIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiIGQ9IiBNMTQ2Ljc4NiA1NS43MTQzIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmYwMDAwOyIvPgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSI+CiAgICAgPHVzZSBzdHlsZT0iZmlsbDojMDAwMGZmO3N0cm9rZTojMDAwMGZmO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLXdpZHRoOjAuNTsiIHg9IjE0Ni43ODU3MTQyODYiIHhsaW5rOmhyZWY9IiNtZTUzYjdiYjZkMiIgeT0iNTUuNzE0Mjg1NzE0MyIvPgogICAgPC9nPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfNjAiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A0MGZlYzExNTNmKSIgZD0iIE0xNjguOTI5IDU1LjcxNDMiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMGJmYmY7Ii8+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIj4KICAgICA8dXNlIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMwMDAwZmY7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2Utd2lkdGg6MC41OyIgeD0iMTY4LjkyODU3MTQyOSIgeGxpbms6aHJlZj0iI21lMjc4MDY0MmUyIiB5PSI1NS43MTQyODU3MTQzIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF82MSI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDQwZmVjMTE1M2YpIiBkPSIgTTE2OC45MjkgMzMuNTcxNCIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2JmMDBiZjsiLz4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNwNDBmZWMxMTUzZikiPgogICAgIDx1c2Ugc3R5bGU9ImZpbGw6IzAwMDBmZjtzdHJva2U6IzAwMDBmZjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS13aWR0aDowLjU7IiB4PSIxNjguOTI4NTcxNDI5IiB4bGluazpocmVmPSIjbWU1M2I3YmI2ZDIiIHk9IjMzLjU3MTQyODU3MTQiLz4KICAgIDwvZz4KICAgPC9nPgogICA8ZyBpZD0icGF0Y2hfMyI+CiAgICA8cGF0aCBkPSIgTTI1IDIyLjUgTDE4MCAyMi41IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwOyIvPgogICA8L2c+CiAgIDxnIGlkPSJwYXRjaF80Ij4KICAgIDxwYXRoIGQ9IiBNMTgwIDE3Ny41IEwxODAgMjIuNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDsiLz4KICAgPC9nPgogICA8ZyBpZD0icGF0Y2hfNSI+CiAgICA8cGF0aCBkPSIgTTI1IDE3Ny41IEwxODAgMTc3LjUiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9InBhdGNoXzYiPgogICAgPHBhdGggZD0iIE0yNSAxNzcuNSBMMjUgMjIuNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDsiLz4KICAgPC9nPgogIDwvZz4KIDwvZz4KIDxkZWZzPgogIDxjbGlwUGF0aCBpZD0icDQwZmVjMTE1M2YiPgogICA8cmVjdCBoZWlnaHQ9IjE1NS4wIiB3aWR0aD0iMTU1LjAiIHg9IjI1LjAiIHk9IjIyLjUiLz4KICA8L2NsaXBQYXRoPgogPC9kZWZzPgo8L3N2Zz4K|200x200px|math-trunc.svg]]

Argument

Error handling

Errors are reported as specified in math_errhandling.

If the implementation supports IEEE floating-point arithmetic (IEC 60559),

  • The current rounding mode has no effect.
  • If arg is ±∞, it is returned, unmodified
  • If arg is ±0, it is returned, unmodified
  • If arg is NaN, NaN is returned

Notes

FE_INEXACT may be (but isn't required to be) raised when truncating a non-integer finite value.

The largest representable floating-point values are exact integers in all standard floating-point formats, so this function never overflows on its own; however the result may overflow any integer type (including intmax_t), when stored in an integer variable.

The implicit conversion from floating-point to integral types also rounds towards zero, but is limited to the values that can be represented by the target type.

Example

#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("trunc(+2.7) = %+.1f\n", trunc(2.7));
    printf("trunc(-2.7) = %+.1f\n", trunc(-2.7));
    printf("trunc(-0.0) = %+.1f\n", trunc(-0.0));
    printf("trunc(-Inf) = %+f\n",   trunc(-INFINITY));
}

Possible output:

trunc(+2.7) = +2.0
trunc(-2.7) = -2.0
trunc(-0.0) = -0.0
trunc(-Inf) = -inf

References

C11 standard (ISO/IEC 9899:2011):

  • 7.12.9.8 The trunc functions (p: 253-254)
  • 7.25 Type-generic math (p: 373-375)
  • F.10.6.8 The trunc functions (p: 528)

C99 standard (ISO/IEC 9899:1999):

  • 7.12.9.8 The trunc functions (p: 234)
  • 7.22 Type-generic math (p: 335-337)
  • F.9.6.8 The trunc functions (p: 464)

See also

(C99)(C99)

computes largest integer not greater than the given value

(function)

(C99)(C99)

computes smallest integer not less than the given value

(function)

(C99)(C99)(C99)

rounds to nearest integer, rounding away from zero in halfway cases

(function)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/numeric/math/trunc