sincos.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright (c) 2011 William Pitcock <nenolod@dereferenced.org>
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  9. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  10. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  11. * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
  12. * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  13. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  14. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  15. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  16. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  17. * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  18. * POSSIBILITY OF SUCH DAMAGE.
  19. */
  20. #include <features.h>
  21. #include <math.h>
  22. libm_hidden_proto(sincos)
  23. void sincos(double x, double *s, double *c)
  24. {
  25. *s = sin(x);
  26. *c = cos(x);
  27. }
  28. libm_hidden_def(sincos)
  29. libm_hidden_proto(sincosf)
  30. void sincosf(float x, float *s, float *c)
  31. {
  32. *s = sinf(x);
  33. *c = cosf(x);
  34. }
  35. libm_hidden_def(sincosf)
  36. #if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
  37. libm_hidden_proto(sincosl)
  38. void sincosl(long double x, long double *s, long double *c)
  39. {
  40. *s = sinl(x);
  41. *c = cosl(x);
  42. }
  43. libm_hidden_def(sincosl)
  44. #endif