#![no_std]
#![warn(missing_docs)]
#![doc(html_root_url = "https://docs.rs/gmp-mpfr-sys/~1.5")]
#![doc(html_logo_url = "data:image/svg+xml;base64,
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93
d3cuaW5rc2NhcGUub3JnLykgLS0+Cjxzdmcgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiIHZlcnNpb249IjEuMSIgdmlld0JveD0i
MCAwIDMzLjg2NyAzMy44NjciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVh
dGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogPG1ldGFkYXRhPgogIDxyZGY6UkRGPgogICA8
Y2M6V29yayByZGY6YWJvdXQ9IiI+CiAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgIDxkYzp0eXBl
IHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgPC9jYzpXb3JrPgogIDwv
cmRmOlJERj4KIDwvbWV0YWRhdGE+CiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIC0yNjMuMTMpIj4KICA8Y2lyY2xlIGN4PSIx
Ni45MzMiIGN5PSIyODAuMDciIHI9IjE2LjkzMyIgZmlsbD0iI2Y3ZjFhMSIvPgogIDxnIGZpbGw9IiMwMDcyYjIiIHN0cm9rZS13
aWR0aD0iLjI2NDU4cHgiPgogICA8ZyBzdHJva2U9IiMwMDAiPgogICAgPGcgYXJpYS1sYWJlbD0iNiI+CiAgICAgPHBhdGggZD0i
bTE0LjM2MSAyNzguNzFjMC42NjA0IDAgMS4yODQxIDAuMjc1MTYgMS4yODQxIDEuMzk0MiAwIDEuMjI5MS0wLjU4NzAyIDEuNjE0
My0xLjI0NzQgMS42MTQzLTAuNTY4NjggMC0xLjI2NTgtMC4zODUyMy0xLjUyMjYtMi4wMTc5IDAuMzY2ODktMC42OTcwOSAwLjkz
NTU2LTAuOTkwNiAxLjQ4NTktMC45OTA2em0wLjExMDA3IDUuMzU2NmMyLjIwMTMgMCA0LjAzNTgtMS40Njc2IDQuMDM1OC0zLjk2
MjRzLTEuNTQwOS0zLjU5NTUtMy41MjIxLTMuNTk1NWMtMC42MjM3MSAwLTEuNjE0MyAwLjQwMzU4LTIuMTgzIDEuMTU1NyAwLjEy
ODQxLTIuMzQ4MSAxLjAwODktMy4xMzY5IDIuMTQ2My0zLjEzNjkgMC42NjA0IDAgMS4zOTQyIDAuNDAzNTcgMS43NjExIDAuODA3
MTVsMS42NTEtMS44NzExYy0wLjc3MDQ2LTAuNzcwNDYtMS45ODEyLTEuNDY3Ni0zLjYzMjItMS40Njc2LTIuNDk0OCAwLTQuODA2
MiAyLjAxNzktNC44MDYyIDYuMjM3MSAwIDQuMjE5MiAyLjMxMTQgNS44MzM1IDQuNTQ5NCA1LjgzMzV6IiBzdHJva2U9Im5vbmUi
Lz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0icm90YXRlKDE1LjUxNSkiIGFyaWEtbGFiZWw9IjIiPgogICAgIDxwYXRoIGQ9
Im05OC4wMjggMjY3Ljk1aDUuMDQ2MXYtMS4zOTk4aC0xLjYwM2MtMC4zMjczOCAwLTAuODI0MDkgMC4wNDUxLTEuMTk2NiAwLjA5
MDMgMS4yNzU2LTEuMjUzMSAyLjQ0OTctMi40MjcxIDIuNDQ5Ny0zLjcyNTMgMC0xLjM2Ni0wLjk1OTU2LTIuMjY5MS0yLjM3MDct
Mi4yNjkxLTEuMDA0NyAwLTEuNjgyIDAuMzk1MTEtMi4zNzA3IDEuMTc0bDAuODY5MjQgMC44NTc5NmMwLjM2MTI0LTAuMzgzODMg
MC43NTYzNi0wLjczMzc4IDEuMjc1Ni0wLjczMzc4IDAuNjIwODkgMCAxLjAxNiAwLjM4MzgyIDEuMDE2IDEuMDgzNyAwIDEuMDA0
Ny0xLjMwOTUgMi4yOTE2LTMuMTE1NyAzLjg5NDd6IiBmaWxsLW9wYWNpdHk9Ii45NzI1NSIgc3Ryb2tlPSJub25lIi8+CiAgICA8
L2c+CiAgICA8ZyB0cmFuc2Zvcm09InJvdGF0ZSgtMTEuMDMzKSIgYXJpYS1sYWJlbD0iOCI+CiAgICAgPHBhdGggZD0ibS0zOC45
MiAyOTAuNzZjMS4yNzQyIDAgMi4xMjM3LTAuNzQwODMgMi4xMjM3LTEuNzA4OCAwLTAuODM5NjItMC41MDM3Ny0xLjMwMzktMS4w
ODY2LTEuNjI5OHYtMC4wMzk1YzAuNDA0OTktMC4yOTYzMyAwLjgzOTYxLTAuODE5ODYgMC44Mzk2MS0xLjQ0MjIgMC0xLjAxNzQt
MC43MjEwOC0xLjY5OS0xLjg0NzEtMS42OTktMS4wODY2IDAtMS44OTY1IDAuNjUxOTMtMS44OTY1IDEuNjY5MyAwIDAuNjYxODEg
MC4zODUyMyAxLjEyNjEgMC44NjkyNCAxLjQ3MTh2MC4wMzk1Yy0wLjU5MjY3IDAuMzE2MDktMS4xMzU5IDAuODI5NzQtMS4xMzU5
IDEuNjEwMSAwIDEuMDE3NCAwLjkwODc2IDEuNzI4NiAyLjEzMzYgMS43Mjg2em0wLjQxNDg3LTMuNjY0N2MtMC43MDEzMi0wLjI3
NjU3LTEuMjY0NC0wLjU1MzE1LTEuMjY0NC0xLjE4NTMgMC0wLjU0MzI4IDAuMzc1MzYtMC44NTkzNyAwLjg1OTM3LTAuODU5Mzcg
MC41ODI3OSAwIDAuOTI4NTEgMC40MDQ5OSAwLjkyODUxIDAuOTU4MTUgMCAwLjM5NTExLTAuMTg3NjggMC43NTA3MS0wLjUyMzUy
IDEuMDg2NnptLTAuMzk1MTEgMi44NTQ3Yy0wLjY0MjA2IDAtMS4xNTU3LTAuNDE0ODYtMS4xNTU3LTEuMDM3MiAwLTAuNDg0MDEg
MC4yODY0Ni0wLjg4OSAwLjY4MTU3LTEuMTc1NSAwLjg0OTQ5IDAuMzQ1NzIgMS41MTEzIDAuNTkyNjcgMS41MTEzIDEuMjc0MiAw
IDAuNTgyNzktMC40MzQ2MiAwLjkzODM5LTEuMDM3MiAwLjkzODM5eiIgZmlsbC1vcGFjaXR5PSIuOTQxMTgiIHN0cm9rZT0ibm9u
ZSIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJyb3RhdGUoNi41MDA4KSIgYXJpYS1sYWJlbD0iMyI+CiAgICAgPHBhdGgg
ZD0ibTM5LjMwMiAyODMuNjRjMS4wMzI5IDAgMS44ODgxLTAuNTc1NzMgMS44ODgxLTEuNTU3OSAwLTAuNzExMi0wLjQ4MjYtMS4x
Njg0LTEuMTE3Ni0xLjMzNzd2LTAuMDMzOWMwLjU4NDItMC4yMjg2IDAuOTM5OC0wLjYzNSAwLjkzOTgtMS4yMzYxIDAtMC45MTQ0
LTAuNzExMi0xLjQyMjQtMS43NDQxLTEuNDIyNC0wLjY0MzQ3IDAtMS4xNTk5IDAuMjcwOTMtMS42MTcxIDAuNjc3MzNsMC40OTk1
MyAwLjYwMTE0YzAuMzMwMi0wLjMwNDggMC42NjA0LTAuNTA4IDEuMDgzNy0wLjUwOCAwLjQ5MTA3IDAgMC43OTU4NyAwLjI3MDkz
IDAuNzk1ODcgMC43MTk2NiAwIDAuNDk5NTQtMC4zNDcxMyAwLjg2MzYtMS40MDU1IDAuODYzNnYwLjcxMTJjMS4yMjc3IDAgMS41
ODMzIDAuMzU1NiAxLjU4MzMgMC45MTQ0IDAgMC41MDgtMC40MDY0IDAuODEyODEtMC45OTA2IDAuODEyODEtMC41NDE4NyAwLTAu
OTU2NzMtMC4yNjI0Ny0xLjI3ODUtMC41OTI2N2wtMC40NjU2NyAwLjYyNjUzYzAuMzgxIDAuNDIzMzQgMC45NTY3MyAwLjc2MiAx
LjgyODggMC43NjJ6IiBmaWxsLW9wYWNpdHk9Ii44Nzg0MyIgc3Ryb2tlPSJub25lIi8+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zv
cm09InJvdGF0ZSg4LjM1NikiIGFyaWEtbGFiZWw9IjEiPgogICAgIDxwYXRoIGQ9Im00Ni40MDUgMjY4LjloMy4yNDI3di0wLjc5
NTg3aC0xLjA1ODN2LTQuNTg4OWgtMC43MjgxM2MtMC4zMzg2NyAwLjIwMzItMC43MTEyIDAuMzM4NjctMS4yNDQ2IDAuNDQwMjd2
MC42MDk2aDAuOTkwNnYzLjUzOTFoLTEuMjAyM3oiIGZpbGwtb3BhY2l0eT0iLjc1Mjk0IiBzdHJva2U9Im5vbmUiLz4KICAgIDwv
Zz4KICAgIDxnIHRyYW5zZm9ybT0icm90YXRlKDEyLjg2MSkiIGFyaWEtbGFiZWw9IjgiPgogICAgIDxwYXRoIGQ9Im04NS4wMzYg
MjYxLjYzYzEuMDkyMiAwIDEuODIwMy0wLjYzNSAxLjgyMDMtMS40NjQ3IDAtMC43MTk2Ny0wLjQzMTgtMS4xMTc2LTAuOTMxMzMt
MS4zOTd2LTAuMDMzOWMwLjM0NzEzLTAuMjU0IDAuNzE5NjctMC43MDI3MyAwLjcxOTY3LTEuMjM2MSAwLTAuODcyMDctMC42MTgw
Ny0xLjQ1NjMtMS41ODMzLTEuNDU2My0wLjkzMTMzIDAtMS42MjU2IDAuNTU4OC0xLjYyNTYgMS40MzA5IDAgMC41NjcyNiAwLjMz
MDIgMC45NjUyIDAuNzQ1MDcgMS4yNjE1djAuMDMzOWMtMC41MDggMC4yNzA5My0wLjk3MzY3IDAuNzExMi0wLjk3MzY3IDEuMzgw
MSAwIDAuODcyMDcgMC43Nzg5MyAxLjQ4MTcgMS44Mjg4IDEuNDgxN3ptMC4zNTU2LTMuMTQxMWMtMC42MDExMy0wLjIzNzA3LTEu
MDgzNy0wLjQ3NDE0LTEuMDgzNy0xLjAxNiAwLTAuNDY1NjcgMC4zMjE3My0wLjczNjYgMC43MzY2LTAuNzM2NiAwLjQ5OTUzIDAg
MC43OTU4NyAwLjM0NzEzIDAuNzk1ODcgMC44MjEyNiAwIDAuMzM4NjctMC4xNjA4NyAwLjY0MzQ3LTAuNDQ4NzMgMC45MzEzNHpt
LTAuMzM4NjcgMi40NDY5Yy0wLjU1MDMzIDAtMC45OTA2LTAuMzU1Ni0wLjk5MDYtMC44ODkgMC0wLjQxNDg2IDAuMjQ1NTMtMC43
NjIgMC41ODQyLTEuMDA3NSAwLjcyODEzIDAuMjk2MzMgMS4yOTU0IDAuNTA4IDEuMjk1NCAxLjA5MjIgMCAwLjQ5OTUzLTAuMzcy
NTMgMC44MDQzMy0wLjg4OSAwLjgwNDMzeiIgZmlsbC1vcGFjaXR5PSIuNjI3NDUiIHN0cm9rZT0ibm9uZSIvPgogICAgPC9nPgog
ICAgPGcgdHJhbnNmb3JtPSJyb3RhdGUoNC4zMDk5KSIgYXJpYS1sYWJlbD0iNSI+CiAgICAgPHBhdGggZD0ibTQ2LjM0MSAyODku
NDljMC45OTA2IDAgMS44OTY1LTAuNjc3MzQgMS44OTY1LTEuODU0MiAwLTEuMTU5OS0wLjc3MDQ3LTEuNjg0OS0xLjY5MzMtMS42
ODQ5LTAuMjc5NCAwLTAuNDgyNiAwLjA2NzctMC43MTEyIDAuMTc3OGwwLjExMDA3LTEuMzAzOWgyLjAzMnYtMC44MjEyN2gtMi44
Nzg3bC0wLjE2MDg3IDIuNjU4NSAwLjQ2NTY3IDAuMjk2MzNjMC4zMjE3My0wLjIxMTY3IDAuNTE2NDctMC4zMDQ4IDAuODYzNi0w
LjMwNDggMC41OTI2NyAwIDAuOTkwNiAwLjM2NDA3IDAuOTkwNiAxLjAwNzUgMCAwLjY1MTk0LTAuNDQwMjcgMS4wMzI5LTEuMDQx
NCAxLjAzMjktMC41NDE4NyAwLTAuOTM5OC0wLjI3MDk0LTEuMjYxNS0wLjU3NTc0bC0wLjQ0ODczIDAuNjI2NTRjMC4zOTc5MyAw
LjM5NzkzIDAuOTY1MiAwLjc0NTA3IDEuODM3MyAwLjc0NTA3eiIgZmlsbC1vcGFjaXR5PSIuNTAxOTYiIHN0cm9rZT0ibm9uZSIv
PgogICAgPC9nPgogICAgPGcgZmlsbC1vcGFjaXR5PSIuMzc2NDciIGFyaWEtbGFiZWw9IjMiPgogICAgIDxwYXRoIGQ9Im05Ljg4
NTkgMjkzLjQ2YzEuMDMyOSAwIDEuODg4MS0wLjU3NTc0IDEuODg4MS0xLjU1NzkgMC0wLjcxMTItMC40ODI2LTEuMTY4NC0xLjEx
NzYtMS4zMzc3di0wLjAzMzljMC41ODQyLTAuMjI4NiAwLjkzOTgtMC42MzUgMC45Mzk4LTEuMjM2MSAwLTAuOTE0NC0wLjcxMTIt
MS40MjI0LTEuNzQ0MS0xLjQyMjQtMC42NDM0NyAwLTEuMTU5OSAwLjI3MDk0LTEuNjE3MSAwLjY3NzM0bDAuNDk5NTMgMC42MDEx
M2MwLjMzMDItMC4zMDQ4IDAuNjYwNC0wLjUwOCAxLjA4MzctMC41MDggMC40OTEwNyAwIDAuNzk1ODcgMC4yNzA5MyAwLjc5NTg3
IDAuNzE5NjcgMCAwLjQ5OTUzLTAuMzQ3MTMgMC44NjM2LTEuNDA1NSAwLjg2MzZ2MC43MTEyYzEuMjI3NyAwIDEuNTgzMyAwLjM1
NTYgMS41ODMzIDAuOTE0NCAwIDAuNTA4LTAuNDA2NCAwLjgxMjgtMC45OTA2IDAuODEyOC0wLjU0MTg3IDAtMC45NTY3My0wLjI2
MjQ3LTEuMjc4NS0wLjU5MjY3bC0wLjQ2NTY3IDAuNjI2NTRjMC4zODEgMC40MjMzMyAwLjk1NjczIDAuNzYyIDEuODI4OCAwLjc2
MnoiIHN0cm9rZT0ibm9uZSIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJyb3RhdGUoLTExLjM1MikiIGFyaWEtbGFiZWw9
IjAiPgogICAgIDxwYXRoIGQ9Im0tNTEuNDcxIDI3Ni4xN2MxLjExNzYgMCAxLjgyODgtMC45OTkwNyAxLjgyODgtMi44MTk0IDAt
MS44MTE5LTAuNzExMi0yLjc2ODYtMS44Mjg4LTIuNzY4Ni0xLjExNzYgMC0xLjgyODggMC45NDgyNi0xLjgyODggMi43Njg2IDAg
MS44MjAzIDAuNzExMiAyLjgxOTQgMS44Mjg4IDIuODE5NHptMC0wLjc2MmMtMC41MTY0NyAwLTAuODk3NDctMC41MzM0LTAuODk3
NDctMi4wNTc0czAuMzgxLTIuMDA2NiAwLjg5NzQ3LTIuMDA2NmMwLjUyNDkzIDAgMC44OTc0NyAwLjQ4MjYgMC44OTc0NyAyLjAw
NjZzLTAuMzcyNTMgMi4wNTc0LTAuODk3NDcgMi4wNTc0eiIgZmlsbC1vcGFjaXR5PSIuMjUwOTgiIHN0cm9rZT0ibm9uZSIvPgog
ICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJyb3RhdGUoMjIuNTA2KSIgYXJpYS1sYWJlbD0iNyI+CiAgICAgPHBhdGggZD0ibTEx
OC4xNSAyNDMuMDhoMC45OTA2YzAuMDkzMS0yLjA5OTcgMC4zNDcxMy0zLjIwODkgMS42NDI1LTQuNzkyMXYtMC41OTI2NmgtMy42
MTUzdjAuODIxMjZoMi41NTY5Yy0xLjA3NTMgMS40NjQ3LTEuNDczMiAyLjY1MDEtMS41NzQ4IDQuNTYzNXoiIGZpbGwtb3BhY2l0
eT0iLjEyNTQ5IiBzdHJva2U9Im5vbmUiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0icm90YXRlKC05LjcyNzMpIiBhcmlh
LWxhYmVsPSIxIj4KICAgICA8cGF0aCBkPSJtLTE4LjI5OSAyODIuNzloMy4yNDI3di0wLjc5NTg3aC0xLjA1ODN2LTQuNTg4OWgt
MC43MjgxM2MtMC4zMzg2NyAwLjIwMzItMC43MTEyIDAuMzM4NjYtMS4yNDQ2IDAuNDQwMjZ2MC42MDk2aDAuOTkwNnYzLjUzOTFo
LTEuMjAyM3oiIGZpbGwtb3BhY2l0eT0iLjA2Mjc0NSIgc3Ryb2tlPSJub25lIi8+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgYXJp
YS1sYWJlbD0iLiI+CiAgICA8cGF0aCBkPSJtMjAuOTIgMjgzLjk4YzAuNjU0NzYgMCAxLjEyODktMC41MTkyOSAxLjEyODktMS4x
NzQgMC0wLjY1NDc2LTAuNDc0MTMtMS4xNzQtMS4xMjg5LTEuMTc0LTAuNjU0NzYgMC0xLjEyODkgMC41MTkyOS0xLjEyODkgMS4x
NzQgMCAwLjY1NDc1IDAuNDc0MTMgMS4xNzQgMS4xMjg5IDEuMTc0eiIvPgogICA8L2c+CiAgPC9nPgogPC9nPgo8L3N2Zz4K
")]
#![doc(test(attr(deny(warnings))))]
#![cfg_attr(feature = "fail-on-warnings", deny(warnings))]
#![warn(unsafe_op_in_unsafe_fn)]
#![allow(clippy::missing_safety_doc, clippy::useless_conversion)]
pub mod gmp;
#[cfg(feature = "mpc")]
pub mod mpc;
#[cfg(feature = "mpfr")]
pub mod mpfr;
pub mod C;
#[cfg(test)]
mod tests {
use core::ffi::c_char;
use core::slice;
use core::str;
pub unsafe fn str_from_cstr<'a>(cstr: *const c_char) -> &'a str {
let s = unsafe { slice::from_raw_parts(cstr.cast(), libc::strlen(cstr)) };
str::from_utf8(s).expect("version not utf8")
}
}