# File src/library/base/R/vector.R # Part of the R package, http://www.R-project.org # # Copyright (C) 1995-2013 The R Core Team # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ vector <- function(mode = "logical", length = 0L) .Internal(vector(mode, length)) logical <- function(length = 0L) .Internal(vector("logical", length)) character <- function(length = 0L) .Internal(vector("character", length)) integer <- function(length = 0L) .Internal(vector("integer", length)) numeric <- double <- function(length = 0L) .Internal(vector("double", length)) complex <- function(length.out = 0L, real = numeric(), imaginary = numeric(), modulus = 1, argument = 0) { if(missing(modulus) && missing(argument)) { ## assume 'real' and 'imaginary' .Internal(complex(length.out, real, imaginary)) } else { n <- max(length.out, length(argument), length(modulus)) rep_len(modulus, n) * exp(1i * rep_len(argument, n)) } } single <- function(length = 0L) structure(vector("double", length), Csingle=TRUE)