Files
adler32
aho_corasick
alga
general
linear
approx
ascii
atty
backtrace
backtrace_sys
base64
bitflags
blas_src
block_buffer
block_padding
brotli2
brotli_sys
buf_redux
byte_tools
byteorder
cauchy
cblas_sys
cfg_if
chrono
format
naive
offset
chunked_transfer
colored
crc32fast
crossbeam
crossbeam_channel
crossbeam_deque
crossbeam_epoch
crossbeam_queue
crossbeam_utils
ctrlc
deflate
digest
dirs
error_chain
filetime
futures
future
sink
stream
and_then.rsbuffer_unordered.rsbuffered.rscatch_unwind.rschain.rschannel.rschunks.rscollect.rsconcat.rsempty.rsfilter.rsfilter_map.rsflatten.rsfold.rsfor_each.rsforward.rsfrom_err.rsfuse.rsfuture.rsfutures_ordered.rsfutures_unordered.rsinspect.rsinspect_err.rsiter.rsiter_ok.rsiter_result.rsmap.rsmap_err.rsmerge.rsmod.rsonce.rsor_else.rspeek.rspoll_fn.rsrepeat.rsselect.rsskip.rsskip_while.rssplit.rstake.rstake_while.rsthen.rsunfold.rswait.rszip.rs
sync
task_impl
unsync
generic_array
getrandom
gzip_header
hex
httparse
hyper
client
header
common
accept.rsaccept_charset.rsaccept_encoding.rsaccept_language.rsaccept_ranges.rsaccess_control_allow_credentials.rsaccess_control_allow_headers.rsaccess_control_allow_methods.rsaccess_control_allow_origin.rsaccess_control_expose_headers.rsaccess_control_max_age.rsaccess_control_request_headers.rsaccess_control_request_method.rsallow.rsauthorization.rscache_control.rsconnection.rscontent_disposition.rscontent_encoding.rscontent_language.rscontent_length.rscontent_range.rscontent_type.rscookie.rsdate.rsetag.rsexpect.rsexpires.rsfrom.rshost.rsif_match.rsif_modified_since.rsif_none_match.rsif_range.rsif_unmodified_since.rslast_modified.rslink.rslocation.rsmod.rsorigin.rspragma.rsprefer.rspreference_applied.rsrange.rsreferer.rsreferrer_policy.rsserver.rsset_cookie.rsstrict_transport_security.rstransfer_encoding.rsupgrade.rsuser_agent.rsvary.rs
internals
shared
http
server
idna
itoa
language_tags
lapack_src
lapacke
lapacke_sys
lazy_static
libc
unix
libm
math
acos.rsacosf.rsacosh.rsacoshf.rsasin.rsasinf.rsasinh.rsasinhf.rsatan.rsatan2.rsatan2f.rsatanf.rsatanh.rsatanhf.rscbrt.rscbrtf.rsceil.rsceilf.rscopysign.rscopysignf.rscos.rscosf.rscosh.rscoshf.rserf.rserff.rsexp.rsexp10.rsexp10f.rsexp2.rsexp2f.rsexpf.rsexpm1.rsexpm1f.rsexpo2.rsfabs.rsfabsf.rsfdim.rsfdimf.rsfenv.rsfloor.rsfloorf.rsfma.rsfmaf.rsfmax.rsfmaxf.rsfmin.rsfminf.rsfmod.rsfmodf.rsfrexp.rsfrexpf.rshypot.rshypotf.rsilogb.rsilogbf.rsj0.rsj0f.rsj1.rsj1f.rsjn.rsjnf.rsk_cos.rsk_cosf.rsk_expo2.rsk_expo2f.rsk_sin.rsk_sinf.rsk_tan.rsk_tanf.rsldexp.rsldexpf.rslgamma.rslgamma_r.rslgammaf.rslgammaf_r.rslog.rslog10.rslog10f.rslog1p.rslog1pf.rslog2.rslog2f.rslogf.rsmod.rsmodf.rsmodff.rsnextafter.rsnextafterf.rspow.rspowf.rsrem_pio2.rsrem_pio2_large.rsrem_pio2f.rsremainder.rsremainderf.rsremquo.rsremquof.rsround.rsroundf.rsscalbn.rsscalbnf.rssin.rssincos.rssincosf.rssinf.rssinh.rssinhf.rssqrt.rssqrtf.rstan.rstanf.rstanh.rstanhf.rstgamma.rstgammaf.rstrunc.rstruncf.rs
linked_hash_map
log
matches
matrixmultiply
maybe_uninit
md5
memchr
memoffset
mime
mime_guess
multipart
nalgebra
base
alias.rsalias_slice.rsallocator.rsarray_storage.rsblas.rscg.rscomponentwise.rsconstraint.rsconstruction.rsconstruction_slice.rsconversion.rscoordinates.rsdefault_allocator.rsdimension.rsedition.rshelper.rsindexing.rsiter.rsmatrix.rsmatrix_alga.rsmatrix_slice.rsmod.rsnorm.rsops.rsproperties.rsscalar.rsstatistics.rsstorage.rsswizzle.rsunit.rsvec_storage.rs
geometry
isometry.rsisometry_alga.rsisometry_alias.rsisometry_construction.rsisometry_conversion.rsisometry_ops.rsmod.rsop_macros.rsorthographic.rsperspective.rspoint.rspoint_alga.rspoint_alias.rspoint_construction.rspoint_conversion.rspoint_coordinates.rspoint_ops.rsquaternion.rsquaternion_alga.rsquaternion_construction.rsquaternion_conversion.rsquaternion_coordinates.rsquaternion_ops.rsreflection.rsrotation.rsrotation_alga.rsrotation_alias.rsrotation_construction.rsrotation_conversion.rsrotation_ops.rsrotation_specialization.rssimilarity.rssimilarity_alga.rssimilarity_alias.rssimilarity_construction.rssimilarity_conversion.rssimilarity_ops.rsswizzle.rstransform.rstransform_alga.rstransform_alias.rstransform_construction.rstransform_conversion.rstransform_ops.rstranslation.rstranslation_alga.rstranslation_alias.rstranslation_construction.rstranslation_conversion.rstranslation_coordinates.rstranslation_ops.rsunit_complex.rsunit_complex_alga.rsunit_complex_construction.rsunit_complex_conversion.rsunit_complex_ops.rs
linalg
ndarray
dimension
extension
impl_views
iterators
layout
linalg
numeric
zip
aliases.rsargument_traits.rsarrayformat.rsarraytraits.rsdata_repr.rsdata_traits.rserror.rsextension.rsfree_functions.rsgeomspace.rsimpl_1d.rsimpl_2d.rsimpl_clone.rsimpl_constructors.rsimpl_cow.rsimpl_dyn.rsimpl_methods.rsimpl_ops.rsimpl_owned_array.rsimpl_raw_views.rsimpl_special_element_types.rsindexes.rsitertools.rslib.rslinalg_traits.rslinspace.rslogspace.rsmacro_utils.rsnumeric_util.rsprelude.rsprivate.rsshape_builder.rsslice.rsstacking.rs
ndarray_linalg
krylov
lapack
net2
netlib_src
nix
net
sys
num_complex
num_cpus
num_integer
num_rational
num_traits
opaque_debug
percent_encoding
phf
phf_shared
ppv_lite86
proc_macro2
quick_error
quote
rand
distributions
weighted
rngs
seq
rand_chacha
rand_core
rand_distr
rawpointer
regex
regex_syntax
ast
hir
unicode_tables
remove_dir_all
rosrust
api
rosxmlrpc
tcpros
util
rosrust_codegen
rosrust_msg
rouille
input
websocket
rustc_demangle
rustros_tf
ryu
safemem
scopeguard
serde
de
private
ser
serde_bytes
serde_derive
serde_json
serde_xml_rs
sha1
siphasher
smallvec
syn
attr.rsbigint.rsbuffer.rscustom_keyword.rscustom_punctuation.rsdata.rsderive.rsdiscouraged.rserror.rsexport.rsexpr.rsext.rsgenerics.rsgroup.rsident.rslib.rslifetime.rslit.rslookahead.rsmac.rsmacros.rsop.rsparse.rsparse_macro_input.rsparse_quote.rspath.rsprint.rspunctuated.rssealed.rsspan.rsspanned.rsthread.rstoken.rsty.rs
tempdir
term
terminfo
thread_local
threadpool
time
tiny_http
util
traitobject
twoway
typeable
typenum
ucd_util
unicase
unicode_bidi
unicode_normalization
unicode_xid
url
utf8_ranges
void
xml
reader
parser
writer
xml_rpc
yaml_rust
>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
// origin: FreeBSD /usr/src/lib/msun/src/s_cos.c */ // // ==================================================== // Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. // // Developed at SunPro, a Sun Microsystems, Inc. business. // Permission to use, copy, modify, and distribute this // software is freely granted, provided that this notice // is preserved. // ==================================================== use super::{k_cos, k_sin, rem_pio2}; // cos(x) // Return cosine function of x. // // kernel function: // k_sin ... sine function on [-pi/4,pi/4] // k_cos ... cosine function on [-pi/4,pi/4] // rem_pio2 ... argument reduction routine // // Method. // Let S,C and T denote the sin, cos and tan respectively on // [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 // in [-pi/4 , +pi/4], and let n = k mod 4. // We have // // n sin(x) cos(x) tan(x) // ---------------------------------------------------------- // 0 S C T // 1 C -S -1/T // 2 -S -C T // 3 -C S -1/T // ---------------------------------------------------------- // // Special cases: // Let trig be any of sin, cos, or tan. // trig(+-INF) is NaN, with signals; // trig(NaN) is that NaN; // // Accuracy: // TRIG(x) returns trig(x) nearly rounded // #[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] pub fn cos(x: f64) -> f64 { let ix = (f64::to_bits(x) >> 32) as u32 & 0x7fffffff; /* |x| ~< pi/4 */ if ix <= 0x3fe921fb { if ix < 0x3e46a09e { /* if x < 2**-27 * sqrt(2) */ /* raise inexact if x != 0 */ if x as i32 == 0 { return 1.0; } } return k_cos(x, 0.0); } /* cos(Inf or NaN) is NaN */ if ix >= 0x7ff00000 { return x - x; } /* argument reduction needed */ let (n, y0, y1) = rem_pio2(x); match n & 3 { 0 => k_cos(y0, y1), 1 => -k_sin(y0, y1, 1), 2 => -k_cos(y0, y1), _ => k_sin(y0, y1, 1), } }