117 lines
3.2 KiB
C
Raw Normal View History

2025-01-12 00:52:51 +08:00
/*****************************************************************************
IRanges C interface: prototypes
-------------------------------
The IRanges C interface is split in 2 files:
1. IRanges_defines.h (in this directory): contains the typedefs and
defines of the interface.
2. IRanges_interface.h (this file): contains the prototypes of the
IRanges C routines that are part of the interface.
*****************************************************************************/
#include "IRanges_defines.h"
/*
* Comparing integer ranges.
* (see IPosRanges_comparison.c)
*/
int overlap_code(
int x_start,
int x_width,
int y_start,
int y_width
);
int invert_overlap_code(int code);
/*
* Low-level manipulation of IRanges objects.
* (see IRanges_class.c)
*/
SEXP get_IRanges_start(SEXP x);
SEXP get_IRanges_width(SEXP x);
SEXP get_IRanges_names(SEXP x);
int get_IRanges_length(SEXP x);
IRanges_holder hold_IRanges(SEXP x);
int get_length_from_IRanges_holder(const IRanges_holder *x_holder);
int get_width_elt_from_IRanges_holder(const IRanges_holder *x_holder, int i);
int get_start_elt_from_IRanges_holder(const IRanges_holder *x_holder, int i);
int get_end_elt_from_IRanges_holder(const IRanges_holder *x_holder, int i);
SEXP get_names_elt_from_IRanges_holder(const IRanges_holder *x_holder, int i);
IRanges_holder get_linear_subset_from_IRanges_holder(const IRanges_holder *x_holder, int offset, int length);
void set_IRanges_names(SEXP x, SEXP names);
void copy_IRanges_slots(SEXP x, SEXP x0);
SEXP new_IRanges(const char *classname, SEXP start, SEXP width, SEXP names);
SEXP new_IRanges_from_IntPairAE(const char *classname, const IntPairAE *intpair_ae);
SEXP new_list_of_IRanges_from_IntPairAEAE(const char *element_type, const IntPairAEAE *intpair_aeae);
SEXP alloc_IRanges(const char *classname, int length);
/*
* Low-level manipulation of Grouping objects.
* (see Grouping_class.c)
*/
SEXP get_H2LGrouping_high2low(SEXP x);
SEXP get_H2LGrouping_low2high(SEXP x);
SEXP get_Partitioning_names(SEXP x);
SEXP get_PartitioningByEnd_end(SEXP x);
SEXP new_PartitioningByEnd(const char *classname, SEXP end, SEXP names);
/*
* Low-level manipulation of CompressedList objects.
* (see CompressedList_class.c)
*/
SEXP get_CompressedList_unlistData(SEXP x);
SEXP get_CompressedList_partitioning(SEXP x);
int get_CompressedList_length(SEXP x);
SEXP get_CompressedList_names(SEXP x);
SEXP new_CompressedList(const char *classname, SEXP unlistData, SEXP partitioning);
CompressedIntsList_holder hold_CompressedIntegerList(SEXP x);
int get_length_from_CompressedIntsList_holder(const CompressedIntsList_holder *x_holder);
Ints_holder get_elt_from_CompressedIntsList_holder(const CompressedIntsList_holder *x_holder, int i);
/*
* Low-level manipulation of CompressedIRangesList objects.
* (see CompressedIRangesList_class.c)
*/
CompressedIRangesList_holder hold_CompressedIRangesList(SEXP x);
int get_length_from_CompressedIRangesList_holder(const CompressedIRangesList_holder *x_holder);
IRanges_holder get_elt_from_CompressedIRangesList_holder(const CompressedIRangesList_holder *x_holder, int i);
int get_eltNROWS_from_CompressedIRangesList_holder(const CompressedIRangesList_holder *x_holder, int i);