Tcl_GetBignumFromObj(3tcl)
Tcl_IntObj(3) Tcl Library Procedures Tcl_IntObj(3)
_________________________________________________________________
NAME
Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj,
Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj,
Tcl_GetIntFromObj, Tcl_GetLongFromObj,
Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj,
Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj - manipulate Tcl
objects as integer values
SYNOPSIS
#include <tcl.h>
Tcl_Obj *
Tcl_NewIntObj(intValue)
Tcl_Obj *
Tcl_NewLongObj(longValue)
Tcl_Obj *
Tcl_NewWideIntObj(wideValue)
Tcl_SetIntObj(objPtr, intValue)
Tcl_SetLongObj(objPtr, longValue)
Tcl_SetWideIntObj(objPtr, wideValue)
int
Tcl_GetIntFromObj(interp, objPtr, intPtr)
int
Tcl_GetLongFromObj(interp, objPtr, longPtr)
int
Tcl_GetWideIntFromObj(interp, objPtr, widePtr)
#include <tclTomMath.h> |
Tcl_Obj * |
Tcl_NewBignumObj(bigValue) |
Tcl_SetBignumObj(objPtr, bigValue) |
int |
Tcl_GetBignumFromObj(interp, objPtr, bigValue) |
int |
Tcl_TakeBignumFromObj(interp, objPtr, bigValue) |
int |
Tcl Last change: 8.5 1
Tcl_IntObj(3) Tcl Library Procedures Tcl_IntObj(3)
Tcl_InitBignumFromDouble(interp, doubleValue, bigValue) |
ARGUMENTS
int intValue (in) Integer value used to
initialize or set a
Tcl object.
long longValue (in) Long integer value
used to initialize or
set a Tcl object.
Tcl_WideInt wideValue (in) Wide integer value
used to initialize or
set a Tcl object.
Tcl_Obj *objPtr (in/out) For Tcl_SetIntObj,
Tcl_SetLongObj,
Tcl_SetWideIntObj, and
Tcl_SetBignumObj, this
points to the object
in which to store an
integral value. For
Tcl_GetIntFromObj,
Tcl_GetLongFromObj,
Tcl_GetWideIntFromObj,
Tcl_GetBignumFromObj,
and
Tcl_TakeBignumFromObj,
this refers to the
object from which to
retrieve an integral
value.
Tcl_Interp *interp (in/out) When non-NULL, an
error message is left
here when integral
value retrieval fails.
int *intPtr (out) Points to place to
store the integer
value retrieved from
objPtr.
long *longPtr (out) Points to place to
store the long integer
value retrieved from
objPtr.
Tcl_WideInt *widePtr (out) Points to place to
store the wide integer
value retrieved from
objPtr.
Tcl Last change: 8.5 2
Tcl_IntObj(3) Tcl Library Procedures Tcl_IntObj(3)
mp_int *bigValue (in/out) Points to a multi- |
precision integer |
structure declared by |
the LibTomMath |
library.
double doubleValue (in) Double value from |
which the integer part |
is determined and used |
to initialize a |
multi-precision |
integer value.
_________________________________________________________________
DESCRIPTION
These procedures are used to create, modify, and read Tcl |
objects that hold integral values. |
The different routines exist to accommodate different |
integral types in C with which values might be exchanged. |
The C integral types for which Tcl provides value exchange |
routines are int, long int, Tcl_WideInt, and mp_int. The |
int and long int types are provided by the C language stan- |
dard. The Tcl_WideInt type is a typedef defined to be what- |
ever signed integral type covers at least the 64-bit integer |
range (-9223372036854775808 to 9223372036854775807). |
Depending on the platform and the C compiler, the actual |
type might be long int, long long int, int64, or something |
else. The mp_int type is a multiple-precision integer type |
defined by the LibTomMath multiple-precision integer |
library. |
The Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, and |
Tcl_NewBignumObj routines each create and return a new Tcl |
object initialized to the integral value of the argument. |
The returned Tcl object is unshared. |
The Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, and |
Tcl_SetBignumObj routines each set the value of an existing |
Tcl object pointed to by objPtr to the integral value pro- |
vided by the other argument. The objPtr argument must point |
to an unshared Tcl object. Any attempt to set the value of |
a shared Tcl object violates Tcl's copy-on-write policy. |
Any existing string representation or internal representa- |
tion in the unshared Tcl object will be freed as a conse- |
quence of setting the new value. |
The Tcl_GetIntFromObj, Tcl_GetLongFromObj, |
Tcl_GetWideIntFromObj, Tcl_GetBignumFromObj, and |
Tcl_TakeBignumFromObj routines attempt to retrieve an |
integral value of the appropriate type from the Tcl object |
Tcl Last change: 8.5 3
Tcl_IntObj(3) Tcl Library Procedures Tcl_IntObj(3)
objPtr. If the attempt succeeds, then TCL_OK is returned, |
and the value is written to the storage provided by the |
caller. The attempt might fail if objPtr does not hold an |
integral value, or if the value exceeds the range of the |
target type. If the attempt fails, then TCL_ERROR is |
returned, and if interp is non-NULL, an error message is |
left in interp. The Tcl_ObjType of objPtr may be changed to |
make subsequent calls to the same routine more efficient. |
Unlike the other functions, Tcl_TakeBignumFromObj may set |
the content of the Tcl object objPtr to an empty string in |
the process of retrieving the multiple-precision integer |
value. |
The choice between Tcl_GetBignumFromObj and |
Tcl_TakeBignumFromObj is governed by how the caller will |
continue to use objPtr. If after the mp_int value is |
retrieved from objPtr, the caller will make no more use of |
objPtr, then using Tcl_TakeBignumFromObj permits Tcl to |
detect when an unshared objPtr permits the value to be moved |
instead of copied, which should be more efficient. If any- |
thing later in the caller requires objPtr to continue to |
hold the same value, then Tcl_GetBignumFromObj must be |
chosen. |
The Tcl_InitBignumFromDouble routine is a utility procedure |
that extracts the integer part of doubleValue and stores |
that integer value in the mp_int value bigValue.
SEE ALSO
Tcl_NewObj, Tcl_DecrRefCount, Tcl_IncrRefCount,
Tcl_GetObjResult
KEYWORDS
integer, integer object, integer type, internal representa-
tion, object, object type, string representation
Tcl Last change: 8.5 4
Man(1) output converted with
man2html