struct DLManagedTensorVersioned;
typedef struct DLManagedTensorVersioned RKRDLManagedTensorVersioned;
struct mts_block_t;
typedef struct mts_block_t mts_block_t;
#ifndef READCON_H
#define READCON_H
#pragma once
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#ifdef __cplusplus
namespace readcon {
#endif
#define CON_SPEC_VERSION 3
#define RKR_CON_SPEC_VERSION 3
#define RKR_DL_INT 0
#define RKR_DL_UINT 1
#define RKR_DL_FLOAT 2
#define RKR_DL_OPAQUE_HANDLE 3
#define RKR_DL_BFLOAT 4
#define RKR_DL_COMPLEX 5
#define RKR_DL_BOOL 6
#define RKR_DL_CPU 1
#define RKR_DL_CUDA 2
#define RKR_DL_CUDA_HOST 3
#define SECTIONS_MASK_FORCES (1 << 0)
#define SECTIONS_MASK_VELOCITIES (1 << 1)
#define SECTIONS_MASK_ENERGIES (1 << 2)
typedef enum RKRStatus {
RKR_STATUS_SUCCESS = 0,
RKR_STATUS_NULL_POINTER = -1,
RKR_STATUS_INVALID_UTF8 = -2,
RKR_STATUS_INVALID_JSON = -3,
RKR_STATUS_IO_ERROR = -4,
RKR_STATUS_INDEX_OUT_OF_BOUNDS = -5,
RKR_STATUS_BUFFER_TOO_SMALL = -6,
RKR_STATUS_INTERNAL_ERROR = -7,
RKR_STATUS_SECTION_ABSENT = -8,
RKR_STATUS_VALIDATION_ERROR = -9,
RKR_STATUS_SELECTION_ERROR = -10,
RKR_STATUS_FEATURE_DISABLED = -11,
} RKRStatus;
typedef struct ConFrameIterator ConFrameIterator;
typedef struct Dimension Dimension;
typedef struct RKRSelectionResult RKRSelectionResult;
typedef struct String String;
typedef struct RKRConFrame {
uint8_t _private[0];
} RKRConFrame;
typedef struct CConFrameIterator {
struct ConFrameIterator *iterator;
struct String *file_contents;
} CConFrameIterator;
typedef struct CAtom {
uint64_t atomic_number;
double x;
double y;
double z;
uint64_t atom_id;
double mass;
bool is_fixed;
bool fixed_x;
bool fixed_y;
bool fixed_z;
double vx;
double vy;
double vz;
bool has_velocity;
double fx;
double fy;
double fz;
bool has_forces;
double energy;
bool has_energy;
} CAtom;
typedef struct CFrame {
struct CAtom *atoms;
uintptr_t num_atoms;
double cell[3];
double angles[3];
bool has_velocities;
bool has_forces;
bool has_energies;
} CFrame;
typedef struct RKRConFrameWriter {
uint8_t _private[0];
} RKRConFrameWriter;
typedef struct RKRConFrameBuilder {
uint8_t _private[0];
} RKRConFrameBuilder;
typedef struct RKRDLDataType {
uint8_t code;
uint8_t bits;
uint16_t lanes;
} RKRDLDataType;
typedef struct RKRDLDevice {
int32_t device_type;
int32_t device_id;
} RKRDLDevice;
typedef struct RKRDlpackExportOptions {
struct RKRDLDataType dtype;
struct RKRDLDevice device;
} RKRDlpackExportOptions;
#if !defined(READCON_CORE_HAS_METATENSOR)
typedef struct mts_block_t {
uint8_t _private[0];
} mts_block_t;
#endif
#ifdef __cplusplus
extern "C" {
#endif
uint32_t rkr_con_spec_version(void);
const char *rkr_library_version(void);
uint64_t rkr_frame_atom_index_by_id(const struct RKRConFrame *frame_handle,
uint64_t atom_id);
uint64_t rkr_symbol_to_z(const char *symbol);
const char *rkr_z_to_symbol(uint64_t z);
uint32_t rkr_frame_spec_version(const struct RKRConFrame *frame_handle);
char *rkr_frame_metadata_json(const struct RKRConFrame *frame_handle);
double rkr_frame_energy(const struct RKRConFrame *frame_handle);
double rkr_frame_index_energy(const struct RKRConFrame *frame_handle);
char *rkr_frame_composition_formula(const struct RKRConFrame *frame_handle);
double rkr_frame_total_mass(const struct RKRConFrame *frame_handle);
double rkr_frame_cell_volume(const struct RKRConFrame *frame_handle);
double rkr_frame_fmax(const struct RKRConFrame *frame_handle);
uint8_t rkr_frame_sections_mask(const struct RKRConFrame *frame_handle);
uint32_t rkr_frame_index_natoms(const struct RKRConFrame *frame_handle);
char *rkr_frame_index_projection_json(const struct RKRConFrame *frame_handle);
char *rkr_frame_potential_type(const struct RKRConFrame *frame_handle);
uint64_t rkr_frame_frame_index(const struct RKRConFrame *frame_handle);
double rkr_frame_time(const struct RKRConFrame *frame_handle);
double rkr_frame_timestep(const struct RKRConFrame *frame_handle);
uint64_t rkr_frame_neb_bead(const struct RKRConFrame *frame_handle);
uint64_t rkr_frame_neb_band(const struct RKRConFrame *frame_handle);
uint64_t rkr_frame_bond_count(const struct RKRConFrame *frame_handle);
enum RKRStatus rkr_frame_bond_at(const struct RKRConFrame *frame_handle,
uint64_t index,
uint32_t *out_i,
uint32_t *out_j,
uint8_t *out_has_order,
int32_t *out_order);
const char *rkr_status_message(enum RKRStatus status);
struct CConFrameIterator *read_con_file_iterator(const char *filename_c);
struct CConFrameIterator *read_con_string_iterator(const char *contents_c);
struct CConFrameIterator *read_con_buffer_iterator(const uint8_t *data,
uintptr_t len);
struct RKRConFrame *con_frame_iterator_next(struct CConFrameIterator *iterator);
void free_rkr_frame(struct RKRConFrame *frame_handle);
void free_con_frame_iterator(struct CConFrameIterator *iterator);
struct CFrame *rkr_frame_to_c_frame(const struct RKRConFrame *frame_handle);
void free_c_frame(struct CFrame *frame);
enum RKRStatus rkr_frame_get_header_line(const struct RKRConFrame *frame_handle,
bool is_prebox,
uintptr_t line_index,
char *buffer,
uintptr_t buffer_len);
char *rkr_frame_get_header_line_cpp(const struct RKRConFrame *frame_handle,
bool is_prebox,
uintptr_t line_index);
void rkr_free_string(char *s);
struct RKRConFrameWriter *create_writer_from_path_c(const char *filename_c);
void free_rkr_writer(struct RKRConFrameWriter *writer_handle);
enum RKRStatus rkr_writer_extend(struct RKRConFrameWriter *writer_handle,
const struct RKRConFrame *const *frame_handles,
uintptr_t num_frames);
enum RKRStatus rkr_writer_set_canonical(struct RKRConFrameWriter *writer_handle,
uint8_t canonical);
uint8_t rkr_writer_is_canonical(const struct RKRConFrameWriter *writer_handle);
struct RKRConFrameWriter *create_writer_from_path_with_precision_c(const char *filename_c,
uint8_t precision);
enum RKRStatus rkr_frame_builder_set_last_velocity(struct RKRConFrameBuilder *builder_handle,
const double *velocity);
enum RKRStatus rkr_frame_builder_set_last_force(struct RKRConFrameBuilder *builder_handle,
const double *force);
enum RKRStatus rkr_frame_builder_set_last_energy(struct RKRConFrameBuilder *builder_handle,
double energy);
uintptr_t rkr_frame_builder_atom_count(const struct RKRConFrameBuilder *builder_handle);
enum RKRStatus rkr_frame_builder_set_atom_position(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double x,
double y,
double z);
enum RKRStatus rkr_frame_builder_set_atom_velocity(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
const double *velocity);
enum RKRStatus rkr_frame_builder_set_atom_force(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
const double *force);
enum RKRStatus rkr_frame_builder_set_atom_energy(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double energy);
enum RKRStatus rkr_frame_builder_set_atom_fixed(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
bool fixed_x,
bool fixed_y,
bool fixed_z);
enum RKRStatus rkr_frame_builder_set_atom_mass(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double mass);
enum RKRStatus rkr_frame_builder_set_atom_id(struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
uint64_t atom_id);
enum RKRStatus rkr_frame_builder_clear_atom_velocity(struct RKRConFrameBuilder *builder_handle,
uintptr_t index);
enum RKRStatus rkr_frame_builder_clear_atom_force(struct RKRConFrameBuilder *builder_handle,
uintptr_t index);
enum RKRStatus rkr_frame_builder_clear_atom_energy(struct RKRConFrameBuilder *builder_handle,
uintptr_t index);
enum RKRStatus rkr_frame_builder_set_positions_from_flat(struct RKRConFrameBuilder *builder_handle,
const double *positions,
uintptr_t len);
enum RKRStatus rkr_frame_builder_set_forces_from_flat(struct RKRConFrameBuilder *builder_handle,
const double *forces,
uintptr_t len);
enum RKRStatus rkr_frame_builder_set_atom_energies_from_flat(struct RKRConFrameBuilder *builder_handle,
const double *energies,
uintptr_t len);
enum RKRStatus rkr_frame_builder_get_atom_position(const struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double *out_xyz);
enum RKRStatus rkr_frame_builder_get_atom_velocity(const struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double *out_xyz,
bool *has_value);
enum RKRStatus rkr_frame_builder_get_atom_force(const struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double *out_xyz,
bool *has_value);
enum RKRStatus rkr_frame_builder_get_atom_energy(const struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double *out_value,
bool *has_value);
enum RKRStatus rkr_frame_builder_get_atom_mass(const struct RKRConFrameBuilder *builder_handle,
uintptr_t index,
double *out_mass);
enum RKRStatus rkr_frame_builder_positions_dlpack(const struct RKRConFrameBuilder *builder_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_positions_dlpack_ex(const struct RKRConFrameBuilder *builder_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_velocities_dlpack(const struct RKRConFrameBuilder *builder_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_velocities_dlpack_ex(const struct RKRConFrameBuilder *builder_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_forces_dlpack(const struct RKRConFrameBuilder *builder_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_forces_dlpack_ex(const struct RKRConFrameBuilder *builder_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_atom_energies_dlpack(const struct RKRConFrameBuilder *builder_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_atom_energies_dlpack_ex(const struct RKRConFrameBuilder *builder_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_masses_dlpack(const struct RKRConFrameBuilder *builder_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_masses_dlpack_ex(const struct RKRConFrameBuilder *builder_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_atom_ids_dlpack(const struct RKRConFrameBuilder *builder_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_builder_atom_ids_dlpack_ex(const struct RKRConFrameBuilder *builder_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
double *rkr_frame_builder_positions_data(struct RKRConFrameBuilder *builder_handle);
double *rkr_frame_builder_velocities_data(struct RKRConFrameBuilder *builder_handle);
double *rkr_frame_builder_forces_data(struct RKRConFrameBuilder *builder_handle);
double *rkr_frame_builder_atom_energies_data(struct RKRConFrameBuilder *builder_handle);
double *rkr_frame_builder_masses_data(struct RKRConFrameBuilder *builder_handle);
const uint64_t *rkr_frame_builder_atom_ids_data(const struct RKRConFrameBuilder *builder_handle);
enum RKRStatus rkr_frame_add_atom_full(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool fixed_x,
bool fixed_y,
bool fixed_z,
uint64_t atom_id,
double mass,
const double *velocity,
const double *force);
struct RKRConFrameBuilder *rkr_frame_new(const double *cell,
const double *angles,
const char *prebox0,
const char *prebox1,
const char *postbox0,
const char *postbox1);
enum RKRStatus rkr_frame_builder_set_metadata_json(struct RKRConFrameBuilder *builder_handle,
const char *metadata_json);
enum RKRStatus rkr_frame_builder_set_scalar_metadata(struct RKRConFrameBuilder *builder_handle,
const char *key,
double value);
enum RKRStatus rkr_frame_builder_set_string_metadata(struct RKRConFrameBuilder *builder_handle,
const char *key,
const char *value);
enum RKRStatus rkr_frame_builder_set_energy(struct RKRConFrameBuilder *builder_handle,
double energy);
enum RKRStatus rkr_frame_builder_set_frame_index(struct RKRConFrameBuilder *builder_handle,
uint64_t idx);
enum RKRStatus rkr_frame_builder_set_time(struct RKRConFrameBuilder *builder_handle,
double time);
enum RKRStatus rkr_frame_builder_set_timestep(struct RKRConFrameBuilder *builder_handle,
double dt);
enum RKRStatus rkr_frame_builder_set_neb_bead(struct RKRConFrameBuilder *builder_handle,
uint64_t bead);
enum RKRStatus rkr_frame_builder_set_neb_band(struct RKRConFrameBuilder *builder_handle,
uint64_t band);
enum RKRStatus rkr_frame_add_atom(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool is_fixed,
uint64_t atom_id,
double mass);
enum RKRStatus rkr_frame_add_atom_with_fixed_mask(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool fixed_x,
bool fixed_y,
bool fixed_z,
uint64_t atom_id,
double mass);
enum RKRStatus rkr_frame_add_atom_with_velocity(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool is_fixed,
uint64_t atom_id,
double mass,
double vx,
double vy,
double vz);
enum RKRStatus rkr_frame_add_atom_with_velocity_fixed_mask(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool fixed_x,
bool fixed_y,
bool fixed_z,
uint64_t atom_id,
double mass,
double vx,
double vy,
double vz);
enum RKRStatus rkr_frame_add_atom_with_forces(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool is_fixed,
uint64_t atom_id,
double mass,
double fx,
double fy,
double fz);
enum RKRStatus rkr_frame_add_atom_with_forces_fixed_mask(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool fixed_x,
bool fixed_y,
bool fixed_z,
uint64_t atom_id,
double mass,
double fx,
double fy,
double fz);
enum RKRStatus rkr_frame_add_atom_with_velocity_and_forces(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool is_fixed,
uint64_t atom_id,
double mass,
double vx,
double vy,
double vz,
double fx,
double fy,
double fz);
enum RKRStatus rkr_frame_add_atom_with_velocity_and_forces_fixed_mask(struct RKRConFrameBuilder *builder_handle,
const char *symbol,
double x,
double y,
double z,
bool fixed_x,
bool fixed_y,
bool fixed_z,
uint64_t atom_id,
double mass,
double vx,
double vy,
double vz,
double fx,
double fy,
double fz);
struct RKRConFrame *rkr_frame_builder_build(struct RKRConFrameBuilder *builder_handle);
void free_rkr_frame_builder(struct RKRConFrameBuilder *builder_handle);
struct RKRConFrameBuilder *rkr_frame_builder_clone(const struct RKRConFrameBuilder *builder_handle);
struct RKRConFrameWriter *create_writer_gzip_c(const char *filename_c);
struct RKRConFrameWriter *create_writer_gzip_with_precision_c(const char *filename_c,
uint8_t precision);
#if defined(READCON_CORE_HAS_ZSTD)
struct RKRConFrameWriter *create_writer_zstd_c(const char *filename_c);
#endif
#if defined(READCON_CORE_HAS_ZSTD)
struct RKRConFrameWriter *create_writer_zstd_with_precision_c(const char *filename_c,
uint8_t precision);
#endif
struct RKRConFrame *rkr_read_first_frame(const char *filename_c);
struct RKRConFrame **rkr_read_all_frames(const char *filename_c,
uintptr_t *num_frames);
void free_rkr_frame_array(struct RKRConFrame **frames, uintptr_t num_frames);
void free_rkr_frame_ptr_array(struct RKRConFrame **frames,
uintptr_t num_frames);
#if defined(READCON_CORE_HAS_METATENSOR)
void rkr_mts_block_free(struct mts_block_t *block);
#endif
#if defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_positions_block(const struct RKRConFrame *frame_handle,
struct mts_block_t **out_block);
#endif
#if defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_velocities_block(const struct RKRConFrame *frame_handle,
struct mts_block_t **out_block);
#endif
#if defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_forces_block(const struct RKRConFrame *frame_handle,
struct mts_block_t **out_block);
#endif
#if defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_atom_energies_block(const struct RKRConFrame *frame_handle,
struct mts_block_t **out_block);
#endif
#if !defined(READCON_CORE_HAS_ZSTD)
struct RKRConFrameWriter *create_writer_zstd_c(const char *_filename_c);
#endif
#if !defined(READCON_CORE_HAS_ZSTD)
struct RKRConFrameWriter *create_writer_zstd_with_precision_c(const char *_filename_c,
uint8_t _precision);
#endif
#if !defined(READCON_CORE_HAS_METATENSOR)
void rkr_mts_block_free(struct mts_block_t *_block);
#endif
#if !defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_positions_block(const struct RKRConFrame *_frame_handle,
struct mts_block_t **out_block);
#endif
#if !defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_velocities_block(const struct RKRConFrame *_frame_handle,
struct mts_block_t **out_block);
#endif
#if !defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_forces_block(const struct RKRConFrame *_frame_handle,
struct mts_block_t **out_block);
#endif
#if !defined(READCON_CORE_HAS_METATENSOR)
enum RKRStatus rkr_frame_metatensor_atom_energies_block(const struct RKRConFrame *_frame_handle,
struct mts_block_t **out_block);
#endif
uintptr_t rkr_frame_atom_count(const struct RKRConFrame *frame_handle);
enum RKRStatus rkr_frame_copy_positions(const struct RKRConFrame *frame_handle,
double *out,
uintptr_t out_len);
enum RKRStatus rkr_frame_copy_velocities(const struct RKRConFrame *frame_handle,
double *out,
uintptr_t out_len);
enum RKRStatus rkr_frame_copy_forces(const struct RKRConFrame *frame_handle,
double *out,
uintptr_t out_len);
enum RKRStatus rkr_frame_copy_atom_energies(const struct RKRConFrame *frame_handle,
double *out,
uintptr_t out_len);
enum RKRStatus rkr_frame_copy_masses(const struct RKRConFrame *frame_handle,
double *out,
uintptr_t out_len);
enum RKRStatus rkr_frame_copy_atom_ids(const struct RKRConFrame *frame_handle,
uint64_t *out,
uintptr_t out_len);
enum RKRStatus rkr_frame_positions_as_dlpack(const struct RKRConFrame *frame_handle,
int32_t device_type,
int32_t device_id,
int64_t _stream,
uint32_t _max_version_major,
uint32_t _max_version_minor,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_positions_from_dlpack(struct RKRConFrame *frame_handle,
const RKRDLManagedTensorVersioned *tensor);
enum RKRStatus rkr_frame_positions_dlpack(const struct RKRConFrame *frame_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_positions_dlpack_ex(const struct RKRConFrame *frame_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_velocities_dlpack(const struct RKRConFrame *frame_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_velocities_dlpack_ex(const struct RKRConFrame *frame_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_forces_dlpack(const struct RKRConFrame *frame_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_forces_dlpack_ex(const struct RKRConFrame *frame_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_atom_energies_dlpack(const struct RKRConFrame *frame_handle,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_atom_energies_dlpack_ex(const struct RKRConFrame *frame_handle,
const struct RKRDlpackExportOptions *opts,
RKRDLManagedTensorVersioned **out_tensor);
enum RKRStatus rkr_frame_select(const struct RKRConFrame *frame_handle,
const char *selection,
struct RKRSelectionResult **out_result);
uint64_t rkr_selection_result_match_count(const struct RKRSelectionResult *result_handle);
uint32_t rkr_selection_result_context_size(const struct RKRSelectionResult *result_handle);
enum RKRStatus rkr_selection_result_match_at(const struct RKRSelectionResult *result_handle,
uint64_t match_index,
uint64_t *out_atoms,
uint32_t *out_size);
enum RKRStatus rkr_selection_result_primary_indices(const struct RKRSelectionResult *result_handle,
uint64_t *out_indices,
uint64_t capacity,
uint64_t *out_written);
void rkr_selection_result_free(struct RKRSelectionResult *result_handle);
uint8_t rkr_has_chemfiles_support(void);
struct RKRConFrame *rkr_read_chemfiles_first(const char *path_c);
struct RKRConFrame **rkr_read_chemfiles_memory(const char *data_c,
const char *format_c,
uintptr_t *num_frames);
void rkr_dlpack_delete(RKRDLManagedTensorVersioned *tensor);
#ifdef __cplusplus
} #endif
#ifdef __cplusplus
} #endif
#endif