File: minuspipluspi.R

package info (click to toggle)
r-cran-circular 0.5-1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,492 kB
  • sloc: ansic: 464; fortran: 69; sh: 13; makefile: 2
file content (45 lines) | stat: -rw-r--r-- 1,778 bytes parent folder | download | duplicates (3)
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
#############################################################
#                                                           
#   MinusPiPlusPiRad function                                  
#   Author: Claudio Agostinelli                             
#   E-mail: claudio@unive.it                                
#   Date: November, 25, 2013                                  
#   Version: 0.2                                          
#                                                           
#   Copyright (C) 2013 Claudio Agostinelli                  
#                                                           
#############################################################

minusPiPlusPi <- function(x) {
  if (is.circular(x)) {
    datacircularp <- circularp(x)
  } else {
    datacircularp <- list(type = "angles", units = "radians", template = "none",
                          modulo = "asis", zero = 0, rotation = "counter")
  }
  dc <- list()
  if (is.null(dc$type)) 
    dc$type <- datacircularp$type
  if (is.null(dc$units)) 
    dc$units <- datacircularp$units
  if (is.null(dc$template)) 
    dc$template <- datacircularp$template
  if (is.null(dc$modulo)) 
    dc$modulo <- datacircularp$modulo
  if (is.null(dc$zero)) 
    dc$zero <- datacircularp$zero
  if (is.null(dc$rotation)) 
    dc$rotation <- datacircularp$rotation
  
  x <- conversion.circular(x, units = "radians", zero = 0, rotation = "counter", modulo = "2pi")
  attr(x, "class") <- attr(x, "circularp") <- NULL
  x[!is.na(x)] <- MinusPiPlusPiRad(x[!is.na(x)])
  x <- conversion.circular(circular(x), dc$units, dc$type, dc$template, "asis", dc$zero, dc$rotation)
  return(x)
}

MinusPiPlusPiRad  <- function(x) {
  x <- .C("MinusPiPlusPiRad",x=as.double(x),n=as.integer(length(x)))$x
  return(x) 
}