/** Adaptive wavelet-based bootstrapping. * @source RS\_wav\_boot.c * @author Copyright (c), 1988, 2006 Insightful Corp. All rights reserved. * @usage #.Call( "RS_wavelets_bootstrap", dwpt, filters, white.indices, n.realization))# * @return An R ... containing ... * @param dwpt Pointer to an R object containing ... dwpt * @param filters Pointer to an R object containing ... filters * @param white.indices Pointer to an R object containing ... white.indices * @param n.realization Pointer to an R object containing ... n.realization * @see wavuniv_transform_packet_whitest * @see wavuniv_transform_packet * @see wavuniv_transform_packet_inverse */ EXTERN_R SEXP RS_wavelets_bootstrap( SEXP pr_dwpt, SEXP pr_filters, SEXP pr_white_indices, SEXP pr_n_realization ) { SEXP pr_ret_result; mat_set dwpt; mat_set filters; mat_set result; mutil_data_type type; mutil_errcode err; sint32 n_realization; univ_mat white_indices; void *VPNULL = NULL; memlist list; /* Avoid lint warning */ (void) whatssi; /* initialize memory list */ MEMLIST_INIT( list ); /* Conversion of input data ... */ /* ... pr_dwpt to dwpt */ READ_MATSET_REGISTER( pr_dwpt, MUTIL_DOUBLE, &dwpt ); /* ... pr_filters to filters */ READ_MATSET_REGISTER( pr_filters, MUTIL_DOUBLE, &filters ); /* ... pr_white_indices to white_indices */ READ_MATRIX_REGISTER( pr_white_indices, &white_indices ); /* ... pr_n_realization to n_realization */ SINT32_FROM_R( pr_n_realization, &n_realization ); /* Call the function */ err = wavuniv_bootstrap( &dwpt, &filters, &white_indices, n_realization, VPNULL, &result ); CONVERT_MATSET_AND_RETURN( wavuniv_bootstrap, &result, &pr_ret_result ); }
/** The maximum overlap discrete wavelet packet transform (MODWPT). * @source RS\_wav\_modw.c * @author Copyright (c), 1988, 2006 Insightful Corp. All rights reserved. * @usage #itCall( "RS_wavelets_transform_maximum_overlap_packet", time.series, filters, n.level))# * @return An R ... containing ... * @param time.series Pointer to an R object containing ... time.series * @param filters Pointer to an R object containing ... filters * @param n.level Pointer to an R object containing ... n.level * @see wavuniv_transform_maximum_overlap * @see wavuniv_transform_maximum_overlap_inverse * @see wavuniv_transform_packet_detail */ EXTERN_R SEXP RS_wavelets_transform_maximum_overlap_packet( SEXP pr_time_series, SEXP pr_filters, SEXP pr_n_level ) { SEXP pr_ret_result; mat_set filters; mat_set result; mutil_data_type type; mutil_errcode err; sint32 n_level; univ_mat time_series; void *VPNULL = NULL; memlist list; /* Avoid lint warning */ (void) whatssi; /* initialize memory list */ MEMLIST_INIT( list ); /* Conversion of input data ... */ /* ... pr_time_series to time_series */ READ_MATRIX_REGISTER( pr_time_series, &time_series ); /* ... pr_filters to filters */ READ_MATSET_REGISTER( pr_filters, MUTIL_DOUBLE, &filters ); /* ... pr_n_level to n_level */ SINT32_FROM_R( pr_n_level, &n_level ); /* Call the function */ err = wavuniv_transform_maximum_overlap_packet( &time_series, &filters, n_level, VPNULL, &result ); CONVERT_MATSET_AND_RETURN( wavuniv_transform_maximum_overlap_packet, &result, &pr_ret_result ); }
/** The gain functions for Daubechies wavelet and scaling filters. * @source RS\_wav\_filt.c * @author Copyright (c), 1988, 2006 Insightful Corp. All rights reserved. * @usage #itCall( "RS_wavelets_filters_daubechies_gain", filter.type, filter.length, num.levels, num.fft, normalize))# * @return An R ... containing ... * @param filter.type Pointer to an R object containing ... filter.type * @param filter.length Pointer to an R object containing ... filter.length * @param num.levels Pointer to an R object containing ... num.levels * @param num.fft Pointer to an R object containing ... num.fft * @param normalize Pointer to an R object containing ... normalize * @see _wav_filter_type * @see wavuniv_filters_daubechies * @see wavuniv_filters_zero_phase */ EXTERN_R SEXP RS_wavelets_filters_daubechies_gain( SEXP pr_filter_type, SEXP pr_filter_length, SEXP pr_num_levels, SEXP pr_num_fft, SEXP pr_normalize ) { SEXP pr_ret_gain_frequency; SEXP pr_ret_gain_scaling; SEXP pr_ret_gain_wavelet; SEXP pr_ret_obj; boolean normalize; mutil_errcode err; sint32 filter_length; sint32 num_fft; sint32 num_levels; univ_mat gain_frequency; univ_mat gain_scaling; univ_mat gain_wavelet; void *VPNULL = NULL; wav_filter_type filter_type; memlist list; /* Avoid lint warning */ (void) whatssi; /* initialize memory list */ MEMLIST_INIT( list ); /* Conversion of input data ... */ /* ... pr_filter_type to filter_type */ WAV_FILTER_TYPE_FROM_R( pr_filter_type, &filter_type ); /* ... pr_filter_length to filter_length */ SINT32_FROM_R( pr_filter_length, &filter_length ); /* ... pr_num_levels to num_levels */ SINT32_FROM_R( pr_num_levels, &num_levels ); /* ... pr_num_fft to num_fft */ SINT32_FROM_R( pr_num_fft, &num_fft ); /* ... pr_normalize to normalize */ BOOLEAN_FROM_R( pr_normalize, &normalize ); /* Call the function */ err = wavuniv_filters_daubechies_gain( filter_type, filter_length, num_levels, num_fft, normalize, VPNULL, &gain_frequency, &gain_wavelet, &gain_scaling ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Problem calling wavuniv_filters_daubechies_gain() function" ); err = memlist_member_register( &list, &gain_frequency, MEMTYPE_MATUNIV); MEMLIST_FREE_ON_ERROR_REGISTER( err, &list ); err = memlist_member_register( &list, &gain_wavelet, MEMTYPE_MATUNIV); MEMLIST_FREE_ON_ERROR_REGISTER( err, &list ); err = memlist_member_register( &list, &gain_scaling, MEMTYPE_MATUNIV); MEMLIST_FREE_ON_ERROR_REGISTER( err, &list ); /* create the output R object */ err = matuniv_to_R( &gain_frequency, (mutil_R_class_type) MUTIL_R_MATRIX, &pr_ret_gain_frequency ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Unable to convert output data to R format" ); err = matuniv_to_R( &gain_wavelet, (mutil_R_class_type) MUTIL_R_MATRIX, &pr_ret_gain_wavelet ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Unable to convert output data to R format" ); err = matuniv_to_R( &gain_scaling, (mutil_R_class_type) MUTIL_R_MATRIX, &pr_ret_gain_scaling ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Unable to convert output data to R format" ); PROTECT( pr_ret_obj = allocVector( VECSXP, 3 ) ); SET_VECTOR_ELT( pr_ret_obj, 0, pr_ret_gain_frequency ); SET_VECTOR_ELT( pr_ret_obj, 1, pr_ret_gain_wavelet ); SET_VECTOR_ELT( pr_ret_obj, 2, pr_ret_gain_scaling ); UNPROTECT(1); /* free registered local memory */ MUTIL_FREE_WARN( memlist, &list ); return pr_ret_obj; }
/** Find the nearest neighbors of a multidimensional embedding of data in the phase space. * @source RS\_fra\_neig.c * @author Copyright (c), 1988, 2006 Insightful Corp. All rights reserved. * @usage #.Call( "RS_fractal_neighbor_find", embedding, n.neighbor, distance.max, distance.metric, pdmatrix, sort.distances, orbital.lag))# * @return An R ... containing ... * @param embedding Pointer to an R object containing ... embedding * @param n.neighbor Pointer to an R object containing ... n.neighbor * @param distance.max Pointer to an R object containing ... distance.max * @param distance.metric Pointer to an R object containing ... distance.metric * @param pdmatrix Pointer to an R object containing ... pdmatrix * @param sort.distances Pointer to an R object containing ... sort.distances * @param orbital.lag Pointer to an R object containing ... orbital.lag * @see _fra_distance_metric * @see frauniv_embed_neighbors */ EXTERN_R SEXP RS_fractal_neighbor_find( SEXP pr_embedding, SEXP pr_n_neighbor, SEXP pr_distance_max, SEXP pr_distance_metric, SEXP pr_sort_distances, SEXP pr_orbital_lag ) { SEXP pr_ret_neighbor_distances; SEXP pr_ret_neighbor_indices; SEXP pr_ret_obj; SEXP pr_ret_original_indices; boolean sort_distances; double distance_max; fra_distance_metric distance_metric; mutil_data_type type; mutil_errcode err; sint32 n_neighbor; sint32 orbital_lag; univ_mat embedding; univ_mat neighbor_distances; univ_mat neighbor_indices; univ_mat original_indices; void *VPNULL = NULL; memlist list; /* Avoid lint warning */ (void) whatssi; /* initialize memory list */ MEMLIST_INIT( list ); /* Conversion of input data ... */ /* ... pr_time_series to time_series */ READ_MATRIX_REGISTER( pr_embedding, &embedding ); /* ... pr_n_neighbor to n_neighbor */ SINT32_FROM_R( pr_n_neighbor, &n_neighbor ); /* ... pr_distance_max to distance_max */ DOUBLE_FROM_R( pr_distance_max, &distance_max ); /* ... pr_distance_metric to distance_metric */ DISTANCE_METRIC_FROM_R( pr_distance_metric, &distance_metric ); /* ... pr_sort_distances to sort_distances */ BOOLEAN_FROM_R( pr_sort_distances, &sort_distances ); /* ... pr_orbital_lag to orbital_lag */ SINT32_FROM_R( pr_orbital_lag, &orbital_lag ); /* Call the function */ err = frauniv_neighbor_find( &embedding, n_neighbor, distance_max, distance_metric, (univ_mat*) NULL, sort_distances, orbital_lag, VPNULL, &original_indices, &neighbor_indices, &neighbor_distances ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Problem calling frauniv_neighbor_find() function" ); err = memlist_member_register( &list, &original_indices, MEMTYPE_MATUNIV); MEMLIST_FREE_ON_ERROR_REGISTER( err, &list ); err = memlist_member_register( &list, &neighbor_indices, MEMTYPE_MATUNIV); MEMLIST_FREE_ON_ERROR_REGISTER( err, &list ); err = memlist_member_register( &list, &neighbor_distances, MEMTYPE_MATUNIV); MEMLIST_FREE_ON_ERROR_REGISTER( err, &list ); /* create the output R object */ err = matuniv_to_R( &original_indices, (mutil_R_class_type) MUTIL_R_MATRIX, &pr_ret_original_indices ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Unable to convert output data to R format" ); err = matuniv_to_R( &neighbor_indices, (mutil_R_class_type) MUTIL_R_MATRIX, &pr_ret_neighbor_indices ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Unable to convert output data to R format" ); err = matuniv_to_R( &neighbor_distances, (mutil_R_class_type) MUTIL_R_MATRIX, &pr_ret_neighbor_distances ); MEMLIST_FREE_ON_ERROR_SPLUS( err, &list, "Unable to convert output data to R format" ); PROTECT( pr_ret_obj = allocVector( VECSXP, 3 ) ); SET_VECTOR_ELT( pr_ret_obj, 0, pr_ret_original_indices ); SET_VECTOR_ELT( pr_ret_obj, 1, pr_ret_neighbor_indices ); SET_VECTOR_ELT( pr_ret_obj, 2, pr_ret_neighbor_distances ); UNPROTECT(1); /* free registered local memory */ MUTIL_FREE_WARN( memlist, &list ); return pr_ret_obj; }
/** Local Lyapunov spectrum estimation. * @source RS\_fra\_lyap.c * @author Copyright (c), 1988, 2006 Insightful Corp. All rights reserved. * @usage #.Call( "RS_fractal_local_lyapunov_spectrum", time.series, embedding.dimension, time.lag, orbital.lag, sampling.interval, local.dimension, polynomial.order, global.reference, n.reference.local, metric, scale))# * @return An R ... containing ... * @param time.series Pointer to an R object containing ... time.series * @param embedding.dimension Pointer to an R object containing ... embedding.dimension * @param time.lag Pointer to an R object containing ... time.lag * @param orbital.lag Pointer to an R object containing ... orbital.lag * @param sampling.interval Pointer to an R object containing ... sampling.interval * @param local.dimension Pointer to an R object containing ... local.dimension * @param polynomial.order Pointer to an R object containing ... polynomial.order * @param global.reference Pointer to an R object containing ... global.reference * @param n.reference.local Pointer to an R object containing ... n.reference.local * @param metric Pointer to an R object containing ... metric * @param scale Pointer to an R object containing ... scale * @see frauniv_embed * @see frauniv_dimension_correlation_summation * @see frauniv_dimension_information */ EXTERN_R SEXP RS_fractal_local_lyapunov_spectrum( SEXP pr_time_series, SEXP pr_embedding_dimension, SEXP pr_time_lag, SEXP pr_orbital_lag, SEXP pr_sampling_interval, SEXP pr_local_dimension, SEXP pr_polynomial_order, SEXP pr_global_reference, SEXP pr_n_reference_local, SEXP pr_metric, SEXP pr_scale ) { SEXP pr_ret_result; double sampling_interval; fra_distance_metric metric; mat_set result; mutil_data_type type; mutil_errcode err; sint32 embedding_dimension; sint32 local_dimension; sint32 n_reference_local; sint32 orbital_lag; sint32 polynomial_order; sint32 time_lag; univ_mat global_reference; univ_mat scale; univ_mat time_series; void *VPNULL = NULL; memlist list; /* Avoid lint warning */ (void) whatssi; /* initialize memory list */ MEMLIST_INIT( list ); /* Conversion of input data ... */ /* ... pr_time_series to time_series */ READ_MATRIX_REGISTER( pr_time_series, &time_series ); /* ... pr_embedding_dimension to embedding_dimension */ SINT32_FROM_R( pr_embedding_dimension, &embedding_dimension ); /* ... pr_time_lag to time_lag */ SINT32_FROM_R( pr_time_lag, &time_lag ); /* ... pr_orbital_lag to orbital_lag */ SINT32_FROM_R( pr_orbital_lag, &orbital_lag ); /* ... pr_sampling_interval to sampling_interval */ DOUBLE_FROM_R( pr_sampling_interval, &sampling_interval ); /* ... pr_local_dimension to local_dimension */ SINT32_FROM_R( pr_local_dimension, &local_dimension ); /* ... pr_polynomial_order to polynomial_order */ SINT32_FROM_R( pr_polynomial_order, &polynomial_order ); /* ... pr_global_reference to global_reference */ READ_MATRIX_REGISTER( pr_global_reference, &global_reference ); /* ... pr_n_reference_local to n_reference_local */ SINT32_FROM_R( pr_n_reference_local, &n_reference_local ); /* ... pr_metric to metric */ DISTANCE_METRIC_FROM_R( pr_metric, &metric ); /* ... pr_scale to scale */ READ_MATRIX_REGISTER( pr_scale, &scale ); /* Call the function */ err = frauniv_local_lyapunov_spectrum( &time_series, embedding_dimension, time_lag, orbital_lag, sampling_interval, local_dimension, polynomial_order, &global_reference, n_reference_local, metric, &scale, VPNULL, &result ); CONVERT_MATSET_AND_RETURN( frauniv_local_lyapunov_spectrum, &result, &pr_ret_result ); }