{"id":51085139,"url":"https://github.com/maandree/libj2","last_synced_at":"2026-06-23T21:02:00.490Z","repository":{"id":358471815,"uuid":"1234005555","full_name":"maandree/libj2","owner":"maandree","description":"Double-max precision integers","archived":false,"fork":false,"pushed_at":"2026-05-17T14:23:49.000Z","size":311,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-17T16:36:25.842Z","etag":null,"topics":["c-library","extended-precision","int128","integers","uint128"],"latest_commit_sha":null,"homepage":"https://codeberg.org/maandree/libj2","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maandree.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-09T16:18:30.000Z","updated_at":"2026-05-17T14:11:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/maandree/libj2","commit_stats":null,"previous_names":["maandree/libj2"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/maandree/libj2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maandree%2Flibj2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maandree%2Flibj2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maandree%2Flibj2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maandree%2Flibj2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maandree","download_url":"https://codeload.github.com/maandree/libj2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maandree%2Flibj2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34706579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-library","extended-precision","int128","integers","uint128"],"created_at":"2026-06-23T21:01:56.793Z","updated_at":"2026-06-23T21:02:00.484Z","avatar_url":"https://github.com/maandree.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"NAME\n\tlibj2 - Double-max precision integers\n\nSYNOPSIS\n\t#include \u003clibj2.h\u003e\n\n\tLink with -lj2.\n\nDESCRIPTION\n\tlibj2 provides integer data types with double the width of uintmax_t,\n\talong with functions for performing standard integer operations, with\n\toptional overflow-detection.\n\n\tlibj2 provides the following value-assignment functions:\n\n\tlibj2_ju_to_j2i(3), libj2_ji_to_j2i(3), libj2_ju_to_j2u(3)\n\t\tExtend an intrinsic integer to an extended-precision integer.\n\n\tlibj2_j2i_min(3), libj2_j2u_min(3)\n\t\tAssign the minimum representable value.\n\n\tlibj2_j2i_max(3), libj2_j2u_max(3)\n\t\tAssign the maximum representable value.\n\n\tlibj2_j2i_zero(3), libj2_j2u_zero(3)\n\t\tAssign the value zero.\n\n\tlibj2_j2u_to_j2i(3), libj2_j2i_to_j2u(3)\n\t\tConvert between signed and unsigned extended-precision integer.\n\n\tlibj2 provides the following string-representation functions:\n\n\tlibj2_str_to_j2i(3), libj2_str_to_j2u(3), libj2_str_to_j2u_sign(3)\n\t\tParse a string-representation.\n\n\tlibj2_j2i_to_str(3), libj2_j2u_to_str(3)\n\t\tCreate a string-representation.\n\n\tlibj2 provides the following sign-shifting functions:\n\n\tlibj2_abs_j2i(3), libj2_abs_j2i_to_j2i(3), libj2_abs_j2i_to_j2u(3)\n\t\tCalculate the absolute value.\n\n\tlibj2_minus_j2i(3), libj2_minus_j2i_to_j2i(3), libj2_minus_j2i_to_j2u(3),\n\tlibj2_minus_j2u(3), libj2_minus_j2u_to_j2i(3), libj2_minus_j2u_to_j2u(3)\n\t\tCalculate the additive inverse.\n\n\tlibj2_minus_abs_j2i(3), libj2_minus_abs_j2i_to_j2i(3)\n\t\tCalculate the additive inverse of the absolute value.\n\n\tlibj2 provides the following comparison functions:\n\n\tlibj2_j2i_cmp_j2i(3), libj2_j2i_cmp_ji(3), libj2_ji_cmp_j2i(3),\n\tlibj2_j2i_cmp_j2u(3), libj2_j2i_cmp_ju(3), libj2_ji_cmp_j2u(3),\n\tlibj2_j2u_cmp_j2i(3), libj2_j2u_cmp_ji(3), libj2_ju_cmp_j2i(3),\n\tlibj2_j2u_cmp_j2u(3), libj2_j2u_cmp_ju(3), libj2_ju_cmp_j2u(3)\n\t\tPerform three-way comparison.\n\n\tlibj2_j2i_eq_j2i(3), libj2_j2i_eq_ji(3), libj2_ji_eq_j2i(3),\n\tlibj2_j2i_eq_j2u(3), libj2_j2i_eq_ju(3), libj2_ji_eq_j2u(3),\n\tlibj2_j2u_eq_j2i(3), libj2_j2u_eq_ji(3), libj2_ju_eq_j2i(3),\n\tlibj2_j2u_eq_j2u(3), libj2_j2u_eq_ju(3), libj2_ju_eq_j2u(3)\n\t\tCheck whether two values are equal.\n\n\tlibj2_j2i_ne_j2i(3), libj2_j2i_ne_ji(3), libj2_ji_ne_j2i(3),\n\tlibj2_j2i_ne_j2u(3), libj2_j2i_ne_ju(3), libj2_ji_ne_j2u(3),\n\tlibj2_j2u_ne_j2i(3), libj2_j2u_ne_ji(3), libj2_ju_ne_j2i(3),\n\tlibj2_j2u_ne_j2u(3), libj2_j2u_ne_ju(3), libj2_ju_ne_j2u(3)\n\t\tCheck whether two values are different.\n\n\tlibj2_j2i_lt_j2i(3), libj2_j2i_lt_ji(3), libj2_ji_lt_j2i(3),\n\tlibj2_j2i_lt_j2u(3), libj2_j2i_lt_ju(3), libj2_ji_lt_j2u(3),\n\tlibj2_j2u_lt_j2i(3), libj2_j2u_lt_ji(3), libj2_ju_lt_j2i(3),\n\tlibj2_j2u_lt_j2u(3), libj2_j2u_lt_ju(3), libj2_ju_lt_j2u(3)\n\t\tCheck whether a value is less than another value.\n\n\tlibj2_j2i_le_j2i(3), libj2_j2i_le_ji(3), libj2_ji_le_j2i(3),\n\tlibj2_j2i_le_j2u(3), libj2_j2i_le_ju(3), libj2_ji_le_j2u(3),\n\tlibj2_j2u_le_j2i(3), libj2_j2u_le_ji(3), libj2_ju_le_j2i(3),\n\tlibj2_j2u_le_j2u(3), libj2_j2u_le_ju(3), libj2_ju_le_j2u(3)\n\t\tCheck whether a value is less than another value\n\t\tor equal to it.\n\n\tlibj2_j2i_gt_j2i(3), libj2_j2i_gt_ji(3), libj2_ji_gt_j2i(3),\n\tlibj2_j2i_gt_j2u(3), libj2_j2i_gt_ju(3), libj2_ji_gt_j2u(3),\n\tlibj2_j2u_gt_j2i(3), libj2_j2u_gt_ji(3), libj2_ju_gt_j2i(3),\n\tlibj2_j2u_gt_j2u(3), libj2_j2u_gt_ju(3), libj2_ju_gt_j2u(3)\n\t\tCheck whether a value is greater than another value.\n\n\tlibj2_j2i_ge_j2i(3), libj2_j2i_ge_ji(3), libj2_ji_ge_j2i(3),\n\tlibj2_j2i_ge_j2u(3), libj2_j2i_ge_ju(3), libj2_ji_ge_j2u(3),\n\tlibj2_j2u_ge_j2i(3), libj2_j2u_ge_ji(3), libj2_ju_ge_j2i(3),\n\tlibj2_j2u_ge_j2u(3), libj2_j2u_ge_ju(3), libj2_ju_ge_j2u(3)\n\t\tCheck whether a value is greater than another value\n\t\tor eqaul to it.\n\n\tlibj2_j2i_is_min(3), libj2_j2u_is_min(3)\n\t\tCheck whether a value is the minimum representable value.\n\n\tlibj2_j2i_is_max(3), libj2_j2u_is_max(3)\n\t\tCheck whether a value is the maximum representable value.\n\n\tlibj2_j2i_is_zero(3), libj2_j2u_is_zero(3)\n\t\tCheck whether a value is the value zero.\n\n\tlibj2_j2i_is_positive(3), libj2_j2u_is_positive(3)\n\t\tCheck whether a value is positive.\n\n\tlibj2_j2i_is_negative(3)\n\t\tCheck whether a value is negative.\n\n\tlibj2_sgn_j2i(3), libj2_sgn_j2u(3)\n\t\tPerform three-way comparison against the value zero (get the\n\t\tsignum of a value).\n\n\tlibj2_j2i_max_j2i(3), libj2_j2i_max_j2i_to_j2i(3),\n\tlibj2_j2i_max_ji(3), libj2_j2i_max_ji_to_j2i(3),\n\tlibj2_j2u_max_j2u(3), libj2_j2u_max_j2u_to_j2u(3),\n\tlibj2_j2u_max_ju(3), libj2_j2u_max_ju_to_j2u(3)\n\t\tGet the maximum of two values.\n\n\tlibj2_max_j2i(3), libj2_max_j2i_to_j2i(3), libj2_max_j2i_return(3),\n\tlibj2_max_j2u(3), libj2_max_j2u_to_j2u(3), libj2_max_j2u_return(3),\n\tlibj2_vmax_j2i(3), libj2_vmax_j2i_to_j2i(3), libj2_vmax_j2i_return(3),\n\tlibj2_vmax_j2u(3), libj2_vmax_j2u_to_j2u(3), libj2_vmax_j2u_return(3)\n\t\tGet the maximum of a list of values.\n\n\tlibj2_j2i_min_j2i(3), libj2_j2i_min_j2i_to_j2i(3),\n\tlibj2_j2i_min_ji(3), libj2_j2i_min_ji_to_j2i(3),\n\tlibj2_j2u_min_j2u(3), libj2_j2u_min_j2u_to_j2u(3),\n\tlibj2_j2u_min_ju(3), libj2_j2u_min_ju_to_j2u(3)\n\t\tGet the minimum of two values.\n\n\tlibj2_min_j2i(3), libj2_min_j2i_to_j2i(3), libj2_min_j2i_return(3),\n\tlibj2_min_j2u(3), libj2_min_j2u_to_j2u(3), libj2_min_j2u_return(3),\n\tlibj2_vmin_j2i(3), libj2_vmin_j2i_to_j2i(3), libj2_vmin_j2i_return(3),\n\tlibj2_vmin_j2u(3), libj2_vmin_j2u_to_j2u(3), libj2_vmin_j2u_return(3)\n\t\tGet the minimum of a list of values.\n\n\tlibj2 provides the following bitwise logic functions:\n\n\tlibj2_not_j2u(3), libj2_not_j2u_to_j2u(3), libj2_not_ju_to_j2u(3)\n\t\tFlip all bits.\n\n\tlibj2_j2i_xor_sign(3), libj2_j2i_xor_sign_to_j2i(3),\n\tlibj2_j2i_xor_sign_to_j2u(3)\n\t\tFlip all bits if the sign-bit is set (if the value is negative).\n\n\tlibj2_j2u_and_bit(3), libj2_j2u_and_bit_to_j2u(3)\n\t\tCalculate the bitwise AND of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_and_j2u(3), libj2_j2u_and_j2u_to_j2u(3),\n\tlibj2_j2u_and_ju(3), libj2_j2u_and_ju_to_j2u(3),\n\tlibj2_ju_and_j2u_to_j2u(3)\n\t\tCalculate the bitwise AND of two values.\n\n\tlibj2_j2u_or_bit(3), libj2_j2u_or_bit_to_j2u(3)\n\t\tCalculate the bitwise OR of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_or_j2u(3), libj2_j2u_or_j2u_to_j2u(3),\n\tlibj2_j2u_or_ju(3), libj2_j2u_or_ju_to_j2u(3),\n\tlibj2_ju_or_j2u_to_j2u(3)\n\t\tCalculate the bitwise OR of two values.\n\n\tlibj2_j2u_xor_bit(3), libj2_j2u_xor_bit_to_j2u(3)\n\t\tCalculate the bitwise XOR of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_xor_j2u(3), libj2_j2u_xor_j2u_to_j2u(3),\n\tlibj2_j2u_xor_ju(3), libj2_j2u_xor_ju_to_j2u(3),\n\tlibj2_ju_xor_j2u_to_j2u(3)\n\t\tCalculate the bitwise XOR of two values.\n\n\tlibj2_j2u_if_bit(3), libj2_j2u_if_bit_to_j2u(3)\n\t\tCalculate the bitwise IF of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_if_j2u(3), libj2_j2u_if_j2u_to_j2u(3),\n\tlibj2_j2u_if_ju(3), libj2_j2u_if_ju_to_j2u(3),\n\tlibj2_ju_if_j2u_to_j2u(3)\n\t\tCalculate the bitwise IF of two values.\n\n\tlibj2_j2u_imply_bit(3), libj2_j2u_imply_bit_to_j2u(3)\n\t\tCalculate the bitwise IMPLY of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_imply_j2u(3), libj2_j2u_imply_j2u_to_j2u(3),\n\tlibj2_j2u_imply_ju(3), libj2_j2u_imply_ju_to_j2u(3),\n\tlibj2_ju_imply_j2u_to_j2u(3)\n\t\tCalculate the bitwise IMPLY of two values.\n\n\tlibj2_j2u_nand_bit(3), libj2_j2u_nand_bit_to_j2u(3)\n\t\tCalculate the bitwise NAND of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_nand_j2u(3), libj2_j2u_nand_j2u_to_j2u(3),\n\tlibj2_j2u_nand_ju(3), libj2_j2u_nand_ju_to_j2u(3),\n\tlibj2_ju_nand_j2u_to_j2u(3)\n\t\tCalculate the bitwise NAND of two values.\n\n\tlibj2_j2u_nor_bit(3), libj2_j2u_nor_bit_to_j2u(3)\n\t\tCalculate the bitwise NOR of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_nor_j2u(3), libj2_j2u_nor_j2u_to_j2u(3),\n\tlibj2_j2u_nor_ju(3), libj2_j2u_nor_ju_to_j2u(3),\n\tlibj2_ju_nor_j2u_to_j2u(3)\n\t\tCalculate the bitwise NOR of two values.\n\n\tlibj2_j2u_xnor_bit(3), libj2_j2u_xnor_bit_to_j2u(3)\n\t\tCalculate the bitwise XNOR of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_xnor_j2u(3), libj2_j2u_xnor_j2u_to_j2u(3),\n\tlibj2_j2u_xnor_ju(3), libj2_j2u_xnor_ju_to_j2u(3),\n\tlibj2_ju_xnor_j2u_to_j2u(3)\n\t\tCalculate the bitwise XNOR of two values.\n\n\tlibj2_j2u_nif_bit(3), libj2_j2u_nif_bit_to_j2u(3)\n\t\tCalculate the bitwise NIF of the value and the value where one\n\t\tspecific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_nif_j2u(3), libj2_j2u_nif_j2u_to_j2u(3),\n\tlibj2_j2u_nif_ju(3), libj2_j2u_nif_ju_to_j2u(3),\n\tlibj2_ju_nif_j2u_to_j2u(3)\n\t\tCalculate the bitwise NIF of two values.\n\n\tlibj2_j2u_nimply_bit(3), libj2_j2u_nimply_bit_to_j2u(3)\n\t\tCalculate the bitwise NIMPLY of the value and the value where\n\t\tone specific bit is set and all other bits are cleared.\n\n\tlibj2_j2u_nimply_j2u(3), libj2_j2u_nimply_j2u_to_j2u(3),\n\tlibj2_j2u_nimply_ju(3), libj2_j2u_nimply_ju_to_j2u(3),\n\tlibj2_ju_nimply_j2u_to_j2u(3)\n\t\tCalculate the bitwise NIMPLY of two values.\n\n\tlibj2_j2u_test_bit(3)\n\t\tCheck whether a specific bit is set.\n\n\tlibj2_j2u_test_j2u(3), libj2_j2u_test_ju(3), libj2_j2u_test_high_ju(3)\n\t\tCheck whether two values any set bits in common.\n\n\tlibj2_j2u_has_j2u(3), libj2_j2u_has_ju(3), libj2_j2u_has_high_ju(3)\n\t\tCheck whether a value have all set bits in another value\n\t\talso set in it.\n\n\tlibj2 provides the following bit-shifting functions:\n\n\tlibj2_j2i_lsh(3), libj2_j2i_lsh_to_j2i(3), libj2_ji_lsh_to_j2i(3),\n\tlibj2_j2u_lsh(3), libj2_j2u_lsh_to_j2u(3), libj2_ju_lsh_to_j2u(3)\n\t\tLeft-shift a value.\n\n\tlibj2_j2i_lsh_overflow(3), libj2_j2i_lsh_to_j2i_overflow(3),\n\tlibj2_ji_lsh_to_j2i_overflow(3), libj2_j2u_lsh_overflow(3),\n\tlibj2_j2u_lsh_to_j2u_overflow(3), libj2_ju_lsh_to_j2u_overflow(3)\n\t\tLeft-shift a value, and detect overflow.\n\n\tlibj2_j2i_lsh_overflow_p(3), libj2_j2u_lsh_overflow_p(3),\n\tlibj2_ji_lsh_overflow_p(3), libj2_ju_lsh_overflow_p(3)\n\t\tPredict overflow of left-shifting a value.\n\n\tlibj2_j2i_sat_lsh(3), libj2_j2i_sat_lsh_to_j2i(3),\n\tlibj2_ji_sat_lsh_to_j2i(3), libj2_j2u_sat_lsh(3),\n\tlibj2_j2u_sat_lsh_to_j2u(3), libj2_ju_sat_lsh_to_j2u(3)\n\t\tLeft-shift a value, but saturate on overflow.\n\n\tlibj2_j2i_rsh(3), libj2_j2i_rsh_to_j2i(3), libj2_ji_rsh_to_j2i(3),\n\tlibj2_j2u_rsh(3), libj2_j2u_rsh_to_j2u(3), libj2_ju_rsh_to_j2u(3)\n\t\tRight-shift a value.\n\n\tlibj2_j2i_rsh_underflow(3), libj2_j2i_rsh_to_j2i_underflow(3),\n\tlibj2_ji_rsh_to_j2i_underflow(3), libj2_j2u_rsh_underflow(3),\n\tlibj2_j2u_rsh_to_j2u_underflow(3), libj2_ju_rsh_to_j2u_underflow(3)\n\t\tRight-shift a value, and detect underflow.\n\n\tlibj2_j2i_rsh_underflow_p(3), libj2_ji_rsh_underflow_p(3),\n\tlibj2_j2u_rsh_underflow_p(3), libj2_ju_rsh_underflow_p(3)\n\t\tPredict underflow of right-shifting a value.\n\n\tlibj2_j2u_lrot(3), libj2_j2u_lrot_to_j2u(3), libj2_ju_lrot_to_j2u(3)\n\t\tLeft-rotate a value.\n\n\tlibj2_j2u_rrot(3), libj2_j2u_rrot_to_j2u(3), libj2_ju_rrot_to_j2u(3)\n\t\tRight-rotate a value.\n\n\tlibj2 provides the following bit-scanning functions:\n\n\tlibj2_clo_j2u(3)\n\t\tCount leading set bits.\n\n\tlibj2_clz_j2u(3)\n\t\tCount leading cleared bits.\n\n\tlibj2_cto_j2u(3)\n\t\tCount trailing set bits.\n\n\tlibj2_ctz_j2u(3)\n\t\tCount trailing cleared bits.\n\n\tlibj2_co_j2u(3)\n\t\tCount set bits.\n\n\tlibj2_cz_j2u(3)\n\t\tCount cleared bits.\n\n\tlibj2_parity_j2u(3)\n\t\tCalculate the parity of the set (or equaivalently the cleared)\n\t\tbits (check whether the number of set bits is odd).\n\n\tlibj2_fls_j2u(3)\n\t\tFind the most significant set bit.\n\n\tlibj2_flc_j2u(3)\n\t\tFind the most significant cleared bit.\n\n\tlibj2_ffs_j2u(3)\n\t\tFind the least significant set bit.\n\n\tlibj2_ffc_j2u(3)\n\t\tFind the least significant cleared bit.\n\n\tlibj2_kls_j2u(3), libj2_kls_j2u_to_j2u(3)\n\t\tClear all but the most significant set bit.\n\n\tlibj2_kfs_j2u(3), libj2_kfs_j2u_to_j2u(3)\n\t\tClear all but the least significant set bit.\n\n\tlibj2_cls_j2u(3), libj2_cls_j2u_to_j2u(3)\n\t\tClear the most significant set bit.\n\n\tlibj2_cfs_j2u(3), libj2_cfs_j2u_to_j2u(3)\n\t\tClear the least significant set bit.\n\n\tlibj2_slc_j2u(3), libj2_slc_j2u_to_j2u(3)\n\t\tSet the most significant cleared bit.\n\n\tlibj2_sfc_j2u(3), libj2_sfc_j2u_to_j2u(3)\n\t\tSet the least significant cleared bit.\n\n\tlibj2 provides the following arithmetic functions:\n\n\tlibj2_j2i_add_j2i(3), libj2_j2i_add_j2i_to_j2i(3),\n\tlibj2_j2i_add_ji(3), libj2_j2i_add_ji_to_j2ui3),\n\tlibj2_ji_add_j2i_to_j2i(3), libj2_ji_add_ji_to_j2i(3),\n\tlibj2_j2u_add_j2u(3), libj2_j2u_add_j2u_to_j2u(3),\n\tlibj2_j2u_add_ju(3), libj2_j2u_add_ju_to_j2u(3),\n\tlibj2_ju_add_j2u_to_j2u(3), libj2_ju_add_ju_to_j2u(3)\n\t\tCalculate the sum of two values.\n\n\tlibj2_j2i_add_j2i_overflow(3), libj2_j2i_add_j2i_to_j2i_overflow(3),\n\tlibj2_j2i_add_ji_overflow(3), libj2_j2i_add_ji_to_j2i_overflow(3),\n\tlibj2_ji_add_j2i_to_j2i_overflow(3), libj2_j2u_add_j2u_overflow(3),\n\tlibj2_j2u_add_j2u_to_j2u_overflow(3), libj2_j2u_add_ju_overflow(3),\n\tlibj2_j2u_add_ju_to_j2u_overflow(3), libj2_ju_add_j2u_to_j2u_overflow(3)\n\t\tCalculate the sum of two values, and detect overflow.\n\n\tlibj2_j2i_add_j2i_overflow_p(3), libj2_j2i_add_ji_overflow_p(3),\n\tlibj2_ji_add_j2i_overflow_p(3), libj2_j2u_add_j2u_overflow_p(3),\n\tlibj2_j2u_add_ju_overflow_p(3), libj2_ju_add_j2u_overflow_p(3)\n\t\tPredict whether adding two values will result in an overflow.\n\n\tlibj2_j2i_add_j2i_carry(3), libj2_j2i_add_j2i_to_j2i_carry(3),\n\tlibj2_j2u_add_j2u_carry(3), libj2_j2u_add_j2u_to_j2u_carry(3)\n\t\tCalculate the sum of two values; with overflow carray-over.\n\n\tlibj2_j2i_sat_add_j2i(3), libj2_j2i_sat_add_j2i_to_j2i(3),\n\tlibj2_j2i_sat_add_ji(3), libj2_j2i_sat_add_ji_to_j2i(3),\n\tlibj2_ji_sat_add_j2i_to_j2i(3), libj2_j2u_sat_add_j2u(3),\n\tlibj2_j2u_sat_add_j2u_to_j2u(3), libj2_j2u_sat_add_ju(3),\n\tlibj2_j2u_sat_add_ju_to_j2u(3), libj2_ju_sat_add_j2u_to_j2u(3)\n\t\tCalculate the sum of two values, but saturate on overflow.\n\n\tlibj2_j2i_sub_j2i(3), libj2_j2i_sub_j2i_to_j2i(3),\n\tlibj2_j2i_sub_ji(3), libj2_j2i_sub_ji_to_j2i(3),\n\tlibj2_ji_sub_j2i_to_j2i(3), libj2_ji_sub_ji_to_j2i(3),\n\tlibj2_j2u_sub_j2u(3), libj2_j2u_sub_j2u_to_j2u(3),\n\tlibj2_j2u_sub_ju(3), libj2_j2u_sub_ju_to_j2u(3),\n\tlibj2_ju_sub_j2u_to_j2u(3), libj2_ju_sub_ju_to_j2u(3)\n\t\tCalculate the difference between two values.\n\n\tlibj2_j2i_rsub_j2i(3), libj2_j2i_rsub_ji(3),\n\tlibj2_j2u_rsub_j2u(3), libj2_j2u_rsub_ju(3)\n\t\tCalculate the difference between two values. These functions\n\t\tswap the position of the two operands.\n\n\tlibj2_j2i_sub_j2i_overflow(3), libj2_j2i_sub_j2i_to_j2i_overflow(3),\n\tlibj2_j2i_sub_ji_overflow(3), libj2_j2i_sub_ji_to_j2i_overflow(3),\n\tlibj2_ji_sub_j2i_to_j2i_overflow(3), libj2_j2u_sub_j2u_overflow(3),\n\tlibj2_j2u_sub_j2u_to_j2u_overflow(3), libj2_j2u_sub_ju_overflow(3),\n\tlibj2_j2u_sub_ju_to_j2u_overflow(3), libj2_ju_sub_j2u_to_j2u_overflow(3),\n\tlibj2_ju_sub_ju_to_j2u_overflow(3)\n\t\tCalculate the difference between two values, and detect\n\t\toverflow.\n\n\tlibj2_j2i_rsub_j2i_overflow(3), libj2_j2i_rsub_ji_overflow(3),\n\tlibj2_j2u_rsub_j2u_overflow(3), libj2_j2u_rsub_ju_overflow(3)\n\t\tCalculate the difference between two values, and detect\n\t\toverflow. These functions swap the position of the two operands.\n\n\tlibj2_j2i_sub_j2i_overflow_p(3), libj2_j2i_sub_ji_overflow_p(3),\n\tlibj2_ji_sub_j2i_overflow_p(3), libj2_j2u_sub_j2u_overflow_p(3),\n\tlibj2_j2u_sub_ju_overflow_p(3), libj2_ju_sub_j2u_overflow_p(3),\n\tlibj2_ju_sub_ju_overflow_p(3)\n\t\tPredict whether subtracting a value will result in an overflow.\n\n\tlibj2_j2i_rsub_j2i_overflow_p(3), libj2_j2i_rsub_ji_overflow_p(3),\n\tlibj2_j2u_rsub_j2u_overflow_p(3), libj2_j2u_rsub_ju_overflow_p(3)\n\t\tPredict whether subtracting a value will result in an overflow.\n\t\tThese functions swap the position of the two operands.\n\n\tlibj2_j2i_sub_j2i_carry(3), libj2_j2i_sub_j2i_to_j2i_carry(3),\n\tlibj2_j2u_sub_j2u_borrow(3), libj2_j2u_sub_j2u_to_j2u_borrow(3)\n\t\tCalculate the difference between two values; with\n\t\toverflow carry-over.\n\n\tlibj2_j2i_rsub_j2i_carry(3), libj2_j2u_rsub_j2u_borrow(3)\n\t\tCalculate the difference between two values; with\n\t\toverflow carry-over. These functions swap the position\n\t\tof the two operands.\n\n\tlibj2_j2i_sat_sub_j2i(3), libj2_j2i_sat_sub_j2i_to_j2i(3),\n\tlibj2_j2i_sat_sub_ji(3), libj2_j2i_sat_sub_ji_to_j2i(3),\n\tlibj2_ji_sat_sub_j2i_to_j2i(3), libj2_j2u_sat_sub_j2u(3),\n\tlibj2_j2u_sat_sub_j2u_to_j2u(3), libj2_j2u_sat_sub_ju(3),\n\tlibj2_j2u_sat_sub_ju_to_j2u(3), libj2_ju_sat_sub_j2u_to_j2u(3),\n\tlibj2_ju_sat_sub_ju_to_j2u(3)\n\t\tCalculate the difference between two values, but saturate on\n\t\toverflow.\n\n\tlibj2_j2i_sat_rsub_j2i(3), libj2_j2i_sat_rsub_ji(3),\n\tlibj2_j2u_sat_rsub_j2u(3), libj2_j2u_sat_rsub_ju(3)\n\t\tCalculate the difference between two values, but saturate on\n\t\toverflow. These functions swap the position of the two operands.\n\n\tlibj2_j2i_abs_diff_j2i_to_j2u(3), libj2_j2u_abs_diff_j2u(3),\n\tlibj2_j2u_abs_diff_j2u_to_j2u(3), libj2_ju_abs_diff_ji_to_j2u(3),\n\tlibj2_ji_abs_diff_ju_to_j2u(3)\n\t\tCalculate the absolute difference between two values.\n\n\tlibj2_j2i_mul_j2i(3), libj2_j2i_mul_j2i_to_j2i(3),\n\tlibj2_j2i_mul_ji(3), libj2_j2i_mul_ji_to_j2i(3),\n\tlibj2_ji_mul_j2i_to_j2i(3), libj2_ji_mul_ji_to_j2i(3),\n\tlibj2_j2u_mul_j2u(3), libj2_j2u_mul_j2u_to_j2u(3),\n\tlibj2_j2u_mul_ju(3), libj2_j2u_mul_ju_to_j2u(3),\n\tlibj2_ju_mul_j2u_to_j2u(3), libj2_ju_mul_ju_to_j2u(3),\n\tlibj2_j2u_mul_j2u_destructive(3)\n\t\tCalculate the product of two values.\n\n\tlibj2_j2i_mul_j2i_overflow(3), libj2_j2i_mul_j2i_to_j2i_overflow(3),\n\tlibj2_j2i_mul_ji_overflow(3), libj2_j2i_mul_ji_to_j2i_overflow(3),\n\tlibj2_ji_mul_j2i_to_j2i_overflow(3), libj2_j2u_mul_j2u_overflow(3),\n\tlibj2_j2u_mul_j2u_to_j2u_overflow(3), libj2_j2u_mul_ju_overflow(3),\n\tlibj2_j2u_mul_ju_to_j2u_overflow(3), libj2_ju_mul_j2u_to_j2u_overflow(3),\n\tlibj2_j2u_mul_j2u_overflow_destructive(3)\n\t\tCalculate the product of two values, and detect overflow.\n\n\tlibj2_j2i_mul_j2i_overflow_p(3), libj2_j2i_mul_ji_overflow_p(3),\n\tlibj2_ji_mul_j2i_overflow_p(3), libj2_j2u_mul_j2u_overflow_p(3),\n\tlibj2_j2u_mul_ju_overflow_p(3), libj2_ju_mul_j2u_overflow_p(3)\n\t\tPredict whether multiplying two values will result in an\n\t\toverflow.\n\n\tlibj2_j2i_mul_j2i_overflow_p_quick(3),\n\tlibj2_j2i_mul_ji_overflow_p_quick(3),\n\tlibj2_ji_mul_j2i_overflow_p_quick(3),\n\tlibj2_j2u_mul_j2u_overflow_p_quick(3),\n\tlibj2_j2u_mul_ju_overflow_p_quick(3),\n\tlibj2_ju_mul_j2u_overflow_p_quick(3)\n\t\tPredict whether multiplying two values will result in an\n\t\toverflow, but do not perform the prediction if it is costly.\n\n\tlibj2_j2i_mul_j2i_to_j2i_overflow_p(3),\n\tlibj2_j2i_mul_ji_to_j2i_overflow_p(3),\n\tlibj2_ji_mul_j2i_to_j2i_overflow_p(3),\n\tlibj2_j2u_mul_j2u_to_j2u_overflow_p(3),\n\tlibj2_j2u_mul_ju_to_j2u_overflow_p(3),\n\tlibj2_ju_mul_j2u_to_j2u_overflow_p(3)\n\t\tPredict whether multiplying two values will result in an\n\t\toverflow, and if the prediction is costly, perform the\n\t\tmultiplication.\n\n\tlibj2_j2i_sat_mul_j2i(3), libj2_j2i_sat_mul_j2i_to_j2i(3),\n\tlibj2_j2i_sat_mul_ji(3), libj2_j2i_sat_mul_ji_to_j2i(3),\n\tlibj2_ji_sat_mul_j2i_to_j2i(3), libj2_j2u_sat_mul_j2u(3),\n\tlibj2_j2u_sat_mul_j2u_to_j2u(3), libj2_j2u_sat_mul_ju(3),\n\tlibj2_j2u_sat_mul_ju_to_j2u(3), libj2_ju_sat_mul_j2u_to_j2u(3),\n\tlibj2_j2u_sat_mul_j2u_destructive(3)\n\t\tCalculate the product of two values, but saturate on overflow.\n\n\tlibj2_j2i_divmod_j2i(3), libj2_j2i_divmod_j2i_to_j2i(3),\n\tlibj2_j2i_divmod_j2i_to_j2i_j2i(3), libj2_j2i_divmod_ji(3),\n\tlibj2_j2i_divmod_ji_to_j2i(3), libj2_j2i_divmod_ji_to_j2i_j2i(3),\n\tlibj2_j2u_divmod_j2u(3), libj2_j2u_divmod_j2u_to_j2u(3),\n\tlibj2_j2u_divmod_j2u_to_j2u_j2u(3), libj2_j2u_divmod_ju(3),\n\tlibj2_j2u_divmod_ju_to_j2u(3), libj2_j2u_divmod_ju_to_j2u_j2u(3)\n\t\tCalculate the ratio between values, and keep the computed\n\t\tremainder.\n\n\tlibj2_j2i_rdivmod_j2i(3), libj2_j2i_rdivmod_j2i_to_j2i(3),\n\tlibj2_j2u_rdivmod_j2u(3), libj2_j2u_rdivmod_j2u_to_j2u(3)\n\t\tCalculate the ratio between values, and keep the computed\n\t\tremainder. These functions swap the position of the two\n\t\toperands.\n\n\tlibj2_j2i_div_j2i(3), libj2_j2i_div_j2i_to_j2i(3),\n\tlibj2_j2i_div_j2i_return(3), libj2_j2i_div_ji(3),\n\tlibj2_j2i_div_ji_to_j2i(3), libj2_j2i_div_ji_return(3),\n\tlibj2_j2u_div_j2u(3), libj2_j2u_div_j2u_to_j2u(3),\n\tlibj2_j2u_div_j2u_return(3), libj2_j2u_div_ju(3),\n\tlibj2_j2u_div_ju_to_j2u(3), libj2_j2u_div_ju_return(3)\n\t\tCalculate the ratio between values, and discard the\n\t\tcomputed remainder.\n\n\tlibj2_j2i_rdiv_j2i(3), libj2_j2u_rdiv_j2u(3)\n\t\tCalculate the ratio between values, and discard the\n\t\tcomputed remainder. This function swaps the position of the two\n\t\toperands.\n\n\tlibj2_j2i_div_j2i_to_j2i_underflow(3), libj2_j2i_div_j2i_underflow(3),\n\tlibj2_j2i_div_ji_to_j2i_underflow(3), libj2_j2i_div_ji_underflow(3),\n\tlibj2_j2u_div_j2u_to_j2u_underflow(3), libj2_j2u_div_j2u_underflow(3),\n\tlibj2_j2u_div_ju_to_j2u_underflow(3), libj2_j2u_div_ju_underflow(3)\n\t\tCalculate the ratio between values, and discard the\n\t\tcomputed remainder, but detect underflow (non-zero remainder).\n\n\tlibj2_j2i_rdiv_j2i_underflow(3), libj2_j2u_rdiv_j2u_underflow(3)\n\t\tCalculate the ratio between values, and discard the\n\t\tcomputed remainder, but detect underflow (non-zero remainder).\n\t\tThis function swaps the position of the two operands.\n\n\tlibj2_j2i_mod_j2i(3), libj2_j2i_mod_j2i_to_j2i(3), libj2_j2i_mod_ji(3),\n\tlibj2_j2i_mod_ji_to_j2i(3), libj2_j2u_mod_j2u(3),\n\tlibj2_j2u_mod_j2u_to_j2u(3), libj2_j2u_mod_ju(3),\n\tlibj2_j2u_mod_ju_to_j2u(3)\n\t\tCalculate the remainder of the integer division between two\n\t\tvalues.\n\n\tlibj2_j2i_rmod_j2i(3), libj2_j2u_rmod_j2u(3)\n\t\tCalculate the remainder of the integer division between two\n\t\tvalues. This function swaps the position of the two operands.\n\nSEE ALSO\n\tlibzahl(7)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaandree%2Flibj2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaandree%2Flibj2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaandree%2Flibj2/lists"}