<commit_before>.\" $Id$
.TH PAPI_read 3 "September, 2004" "PAPI Programmer's Reference" "PAPI"

.SH NAME
PAPI_read \- read hardware counters from an event set
.LP
PAPI_accum \- accumulate and reset counters in an event set

.SH SYNOPSIS
.B C Interface
.nf
.B #include <papi.h>
.BI "int\ PAPI_read(int " EventSet ", long_long *" values ");"
.BI "int\ PAPI_read_ts(int " EventSet ", long_long *" values ", long_long *" cyc ");"
.BI "int\ PAPI_accum(int " EventSet ", long_long *" values ");"
.fi
.B Fortran Interface
.nf
.B #include "fpapi.h"
.BI PAPIF_read(C_INT\  EventSet,\  C_LONG_LONG(*)\  values,\  C_INT\  check )
.BI PAPIF_read_ts(C_INT\  EventSet,\  C_LONG_LONG(*)\  values,\  C_INT\  check,\  C_LONG_LONG(*)\  cyc )
.BI PAPIF_accum(C_INT\  EventSet,\  C_LONG_LONG(*)\  values,\  C_INT\  check )
.fi

.SH DESCRIPTION

These calls assume an initialized PAPI library and a properly added
event set.

.B PAPI_read()
copies the counters of the indicated event set into 
the array
.IR values .
The counters continue counting after the read.
.LP
.B PAPI_read_ts()
copies the counters of the indicated event set into 
the array
.IR values .
It also places a real-time cycle timestamp into
.IR cyc .
The counters continue counting after the read.
.LP
.B PAPI_accum()
adds the counters of the indicated event set into the array
.IR values .
The counters are zeroed and continue counting after the operation.
.LP
Note the differences between PAPI_read() and PAPI_accum(), 
specifically that PAPI_accum() resets the values array to zero.


.SH ARGUMENTS
.I EventSet
--  an integer handle for a PAPI Event Set as created by
.BR "PAPI_create_eventset" (3)
.LP
.I *values
-- an array to hold the counter values of the counting events

.SH RETURN VALUES
On success, these functions return
.B "PAPI_OK."
 On error, a non-zero error code is returned.

.SH ERRORS
.TP
.B "PAPI_EINVAL"
One or more of the arguments is invalid.
.TP
.B "PAPI_ESYS"
A system or C library call failed inside PAPI, see the 
.I "errno"
variable.
.TP
.B "PAPI_ENOEVST"
The event set specified does not exist.

.SH EXAMPLES
.nf
.if t .ft CW
  do_100events();
  if (PAPI_read(EventSet, values) != PAPI_OK)
    handle_error(1);
  /* values[0] now equals 100 */
  do_100events();
  if (PAPI_accum(EventSet, values) != PAPI_OK)
    handle_error(1);
  /* values[0] now equals 200 */
  values[0] = -100;
  do_100events();
  if (PAPI_accum(EventSet, values) != PAPI_OK)
    handle_error(1);
  /* values[0] now equals 0 */
.if t .ft P
.fi

.SH BUGS
These functions have no known bugs.

.SH SEE ALSO
.BR PAPI_set_opt "(3), " PAPI_reset "(3), " 
.BR PAPI_start "(3), " PAPI "(3), " PAPIF "(3)"
<commit_msg>*** empty log message ***<commit_after>.\" $Id$
.TH PAPI_read 3 "September, 2004" "PAPI Programmer's Reference" "PAPI"

.SH NAME
PAPI_read \- read hardware counters from an event set
.LP
PAPI_accum \- accumulate and reset counters in an event set

.SH SYNOPSIS
.B C Interface
.nf
.B #include <papi.h>
.BI "int\ PAPI_read(int " EventSet ", long_long *" values ");"
.BI "int\ PAPI_read_ts(int " EventSet ", long_long *" values ", long_long *" cyc ");"
.BI "int\ PAPI_accum(int " EventSet ", long_long *" values ");"
.fi
.B Fortran Interface
.nf
.B #include "fpapi.h"
.BI PAPIF_read(C_INT\  EventSet,\  C_LONG_LONG(*)\  values,\  C_INT\  check )
.BI PAPIF_read_ts(C_INT\  EventSet,\  C_LONG_LONG(*)\  values,\  C_LONG_LONG(*)\  cyc,\  C_INT\  check)
.BI PAPIF_accum(C_INT\  EventSet,\  C_LONG_LONG(*)\  values,\  C_INT\  check )
.fi

.SH DESCRIPTION

These calls assume an initialized PAPI library and a properly added
event set.

.B PAPI_read()
copies the counters of the indicated event set into 
the array
.IR values .
The counters continue counting after the read.
.LP
.B PAPI_read_ts()
copies the counters of the indicated event set into 
the array
.IR values .
It also places a real-time cycle timestamp into
.IR cyc .
The counters continue counting after the read.
.LP
.B PAPI_accum()
adds the counters of the indicated event set into the array
.IR values .
The counters are zeroed and continue counting after the operation.
.LP
Note the differences between PAPI_read() and PAPI_accum(), 
specifically that PAPI_accum() resets the values array to zero.


.SH ARGUMENTS
.I EventSet
--  an integer handle for a PAPI Event Set as created by
.BR "PAPI_create_eventset" (3)
.LP
.I *values
-- an array to hold the counter values of the counting events

.SH RETURN VALUES
On success, these functions return
.B "PAPI_OK."
 On error, a non-zero error code is returned.

.SH ERRORS
.TP
.B "PAPI_EINVAL"
One or more of the arguments is invalid.
.TP
.B "PAPI_ESYS"
A system or C library call failed inside PAPI, see the 
.I "errno"
variable.
.TP
.B "PAPI_ENOEVST"
The event set specified does not exist.

.SH EXAMPLES
.nf
.if t .ft CW
  do_100events();
  if (PAPI_read(EventSet, values) != PAPI_OK)
    handle_error(1);
  /* values[0] now equals 100 */
  do_100events();
  if (PAPI_accum(EventSet, values) != PAPI_OK)
    handle_error(1);
  /* values[0] now equals 200 */
  values[0] = -100;
  do_100events();
  if (PAPI_accum(EventSet, values) != PAPI_OK)
    handle_error(1);
  /* values[0] now equals 0 */
.if t .ft P
.fi

.SH BUGS
These functions have no known bugs.

.SH SEE ALSO
.BR PAPI_set_opt "(3), " PAPI_reset "(3), " 
.BR PAPI_start "(3), " PAPI "(3), " PAPIF "(3)"

{'fraction_non_alphanumeric': 0.114843310189529, 'fraction_numerical': 0.013886282604616251, 'mean_word_length': 3.5790378006872854, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3177541', 'n_tokens_mistral': 2027, 'n_tokens_neox': 1914, 'n_words': 728}