/* ------------------------------------------------------------------ */
/* Decimal Number Library Demonstration program */
/* ------------------------------------------------------------------ */
/* Copyright (c) IBM Corporation, 2001, 2007. All rights reserved. */
/* ----------------------------------------------------------------+- */
/* right margin -->| */
// example8.c -- using decQuad with the decNumber module
// compile: example8.c decContext.c decQuad.c
// and: decNumber.c decimal128.c decimal64.c
#include "decQuad.h" // decQuad library
#include "decimal128.h" // interface to decNumber
#include <stdio.h> // for printf
int
main(
int
argc,
char
*argv[]) {
decQuad a;
// working decQuad
decNumber numa, numb;
// working decNumbers
decContext set;
// working context
char
string[DECQUAD_String];
// number->string buffer
if
(argc<3) {
// not enough words
printf
(
"Please supply two numbers for power(2*a, b).\n"
);
return
1;
}
decContextDefault(&set, DEC_INIT_DECQUAD);
// initialize
decQuadFromString(&a, argv[1], &set);
// get a
decQuadAdd(&a, &a, &a, &set);
// double a
decQuadToNumber(&a, &numa);
// convert to decNumber
decNumberFromString(&numb, argv[2], &set);
decNumberPower(&numa, &numa, &numb, &set);
// numa=numa**numb
decQuadFromNumber(&a, &numa, &set);
// back via a Quad
decQuadToString(&a, string);
// ..
printf
(
"power(2*%s, %s) => %s\n"
, argv[1], argv[2], string);
return
0;
}
// main