1 /******************************************************************************
2 * Top contributors (to current version):
5 * This file is part of the cvc5 project.
7 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8 * in the top-level source directory and their institutional affiliations.
9 * All rights reserved. See the file COPYING in the top-level source
10 * directory for licensing information.
11 * ****************************************************************************
16 #include "api/cpp/cvc5.h"
17 #include "api_utilities.h"
18 #include "io_github_cvc5_api_Term.h"
20 using namespace cvc5::api
;
23 * Class: io_github_cvc5_api_Term
24 * Method: deletePointer
27 JNIEXPORT
void JNICALL
Java_io_github_cvc5_api_Term_deletePointer(JNIEnv
* env
,
31 delete reinterpret_cast<Term
*>(pointer
);
35 * Class: io_github_cvc5_api_Term
39 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_equals(JNIEnv
* env
,
44 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
45 Term
* term1
= reinterpret_cast<Term
*>(pointer1
);
46 Term
* term2
= reinterpret_cast<Term
*>(pointer2
);
47 // We compare the actual terms, not their pointers.
48 return static_cast<jboolean
>(*term1
== *term2
);
49 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
53 * Class: io_github_cvc5_api_Term
57 JNIEXPORT jint JNICALL
Java_io_github_cvc5_api_Term_compareTo(JNIEnv
* env
,
62 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
63 Term
* term1
= reinterpret_cast<Term
*>(pointer1
);
64 Term
* term2
= reinterpret_cast<Term
*>(pointer2
);
67 return static_cast<jint
>(-1);
73 return static_cast<jint
>(1);
74 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
78 * Class: io_github_cvc5_api_Term
79 * Method: getNumChildren
82 JNIEXPORT jint JNICALL
83 Java_io_github_cvc5_api_Term_getNumChildren(JNIEnv
* env
, jobject
, jlong pointer
)
85 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
86 Term
* current
= reinterpret_cast<Term
*>(pointer
);
87 return static_cast<jint
>(current
->getNumChildren());
88 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
92 * Class: io_github_cvc5_api_Term
96 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getChild(JNIEnv
* env
,
101 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
102 Term
* current
= reinterpret_cast<Term
*>(pointer
);
103 Term
* ret
= new Term((*current
)[static_cast<size_t>(index
)]);
104 return reinterpret_cast<jlong
>(ret
);
105 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
109 * Class: io_github_cvc5_api_Term
113 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getId(JNIEnv
* env
,
117 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
118 Term
* current
= reinterpret_cast<Term
*>(pointer
);
119 return static_cast<jlong
>(current
->getId());
120 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
124 * Class: io_github_cvc5_api_Term
128 JNIEXPORT jint JNICALL
Java_io_github_cvc5_api_Term_getKind(JNIEnv
* env
,
132 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
133 Term
* current
= reinterpret_cast<Term
*>(pointer
);
134 return static_cast<jint
>(current
->getKind());
135 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
139 * Class: io_github_cvc5_api_Term
143 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getSort(JNIEnv
* env
,
147 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
148 Term
* current
= reinterpret_cast<Term
*>(pointer
);
149 Sort
* ret
= new Sort(current
->getSort());
150 return reinterpret_cast<jlong
>(ret
);
151 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
155 * Class: io_github_cvc5_api_Term
159 JNIEXPORT jlong JNICALL
160 Java_io_github_cvc5_api_Term_substitute__JJJ(JNIEnv
* env
,
164 jlong replacementPointer
)
166 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
167 Term
* current
= reinterpret_cast<Term
*>(pointer
);
168 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
169 Term
* replacement
= reinterpret_cast<Term
*>(replacementPointer
);
170 Term
* ret
= new Term(current
->substitute(*term
, *replacement
));
171 return reinterpret_cast<jlong
>(ret
);
172 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
176 * Class: io_github_cvc5_api_Term
178 * Signature: (J[J[J)J
180 JNIEXPORT jlong JNICALL
181 Java_io_github_cvc5_api_Term_substitute__J_3J_3J(JNIEnv
* env
,
184 jlongArray termPointers
,
185 jlongArray replacementPointers
)
187 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
188 Term
* current
= reinterpret_cast<Term
*>(pointer
);
189 jsize termsSize
= env
->GetArrayLength(termPointers
);
190 jsize replacementsSize
= env
->GetArrayLength(replacementPointers
);
191 jlong
* termElements
= env
->GetLongArrayElements(termPointers
, nullptr);
192 jlong
* replacementElements
=
193 env
->GetLongArrayElements(replacementPointers
, nullptr);
195 std::vector
<Term
> terms(termsSize
);
196 std::vector
<Term
> replacements(replacementsSize
);
198 for (jsize i
= 0; i
< termsSize
; i
++)
200 Term
* term
= (Term
*)termElements
[i
];
203 env
->ReleaseLongArrayElements(termPointers
, termElements
, 0);
205 for (jsize i
= 0; i
< replacementsSize
; i
++)
207 Term
* term
= (Term
*)replacementElements
[i
];
208 replacements
[i
] = *term
;
210 env
->ReleaseLongArrayElements(replacementPointers
, replacementElements
, 0);
212 Term
* ret
= new Term(current
->substitute(terms
, replacements
));
213 return reinterpret_cast<jlong
>(ret
);
214 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
218 * Class: io_github_cvc5_api_Term
222 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_hasOp(JNIEnv
* env
,
226 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
227 Term
* current
= reinterpret_cast<Term
*>(pointer
);
228 return static_cast<jboolean
>(current
->hasOp());
229 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
233 * Class: io_github_cvc5_api_Term
237 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getOp(JNIEnv
* env
,
241 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
242 Term
* current
= reinterpret_cast<Term
*>(pointer
);
243 Op
* ret
= new Op(current
->getOp());
244 return reinterpret_cast<jlong
>(ret
);
245 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
249 * Class: io_github_cvc5_api_Term
253 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_hasSymbol(JNIEnv
* env
,
257 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
258 Term
* current
= reinterpret_cast<Term
*>(pointer
);
259 return static_cast<jboolean
>(current
->hasSymbol());
260 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
264 * Class: io_github_cvc5_api_Term
266 * Signature: (J)Ljava/lang/String;
268 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getSymbol(JNIEnv
* env
,
272 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
273 Term
* current
= reinterpret_cast<Term
*>(pointer
);
274 return env
->NewStringUTF(current
->getSymbol().c_str());
275 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
279 * Class: io_github_cvc5_api_Term
283 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isNull(JNIEnv
* env
,
287 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
288 Term
* current
= reinterpret_cast<Term
*>(pointer
);
289 return static_cast<jboolean
>(current
->isNull());
290 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
294 * Class: io_github_cvc5_api_Term
295 * Method: isConstArray
298 JNIEXPORT jboolean JNICALL
299 Java_io_github_cvc5_api_Term_isConstArray(JNIEnv
* env
, jobject
, jlong pointer
)
301 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
302 Term
* current
= reinterpret_cast<Term
*>(pointer
);
303 return static_cast<jboolean
>(current
->isConstArray());
304 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
308 * Class: io_github_cvc5_api_Term
309 * Method: getConstArrayBase
312 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_getConstArrayBase(
313 JNIEnv
* env
, jobject
, jlong pointer
)
315 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
316 Term
* current
= reinterpret_cast<Term
*>(pointer
);
317 Term
* ret
= new Term(current
->getConstArrayBase());
318 return reinterpret_cast<jlong
>(ret
);
319 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
323 * Class: io_github_cvc5_api_Term
327 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_notTerm(JNIEnv
* env
,
331 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
332 Term
* current
= reinterpret_cast<Term
*>(pointer
);
333 Term
* ret
= new Term(current
->notTerm());
334 return reinterpret_cast<jlong
>(ret
);
335 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
339 * Class: io_github_cvc5_api_Term
343 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_andTerm(JNIEnv
* env
,
348 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
349 Term
* current
= reinterpret_cast<Term
*>(pointer
);
350 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
351 Term
* ret
= new Term(current
->andTerm(*term
));
352 return reinterpret_cast<jlong
>(ret
);
353 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
357 * Class: io_github_cvc5_api_Term
361 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_orTerm(JNIEnv
* env
,
366 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
367 Term
* current
= reinterpret_cast<Term
*>(pointer
);
368 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
369 Term
* ret
= new Term(current
->orTerm(*term
));
370 return reinterpret_cast<jlong
>(ret
);
371 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
375 * Class: io_github_cvc5_api_Term
379 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_xorTerm(JNIEnv
* env
,
384 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
385 Term
* current
= reinterpret_cast<Term
*>(pointer
);
386 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
387 Term
* ret
= new Term(current
->xorTerm(*term
));
388 return reinterpret_cast<jlong
>(ret
);
389 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
393 * Class: io_github_cvc5_api_Term
397 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_eqTerm(JNIEnv
* env
,
402 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
403 Term
* current
= reinterpret_cast<Term
*>(pointer
);
404 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
405 Term
* ret
= new Term(current
->eqTerm(*term
));
406 return reinterpret_cast<jlong
>(ret
);
407 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
411 * Class: io_github_cvc5_api_Term
415 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_impTerm(JNIEnv
* env
,
420 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
421 Term
* current
= reinterpret_cast<Term
*>(pointer
);
422 Term
* term
= reinterpret_cast<Term
*>(termPointer
);
423 Term
* ret
= new Term(current
->impTerm(*term
));
424 return reinterpret_cast<jlong
>(ret
);
425 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
429 * Class: io_github_cvc5_api_Term
433 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_iteTerm(
434 JNIEnv
* env
, jobject
, jlong pointer
, jlong thenPointer
, jlong elsePointer
)
436 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
437 Term
* current
= reinterpret_cast<Term
*>(pointer
);
438 Term
* thenTerm
= reinterpret_cast<Term
*>(thenPointer
);
439 Term
* elseTerm
= reinterpret_cast<Term
*>(elsePointer
);
440 Term
* ret
= new Term(current
->iteTerm(*thenTerm
, *elseTerm
));
441 return reinterpret_cast<jlong
>(ret
);
442 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
446 * Class: io_github_cvc5_api_Term
448 * Signature: (J)Ljava/lang/String;
450 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_toString(JNIEnv
* env
,
454 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
455 Term
* current
= reinterpret_cast<Term
*>(pointer
);
456 return env
->NewStringUTF(current
->toString().c_str());
457 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
461 * Class: io_github_cvc5_api_Term
462 * Method: isIntegerValue
465 JNIEXPORT jboolean JNICALL
466 Java_io_github_cvc5_api_Term_isIntegerValue(JNIEnv
* env
, jobject
, jlong pointer
)
468 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
469 Term
* current
= reinterpret_cast<Term
*>(pointer
);
470 return static_cast<jboolean
>(current
->isIntegerValue());
471 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
475 * Class: io_github_cvc5_api_Term
476 * Method: getIntegerValue
477 * Signature: (J)Ljava/lang/String;
479 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getIntegerValue(
480 JNIEnv
* env
, jobject
, jlong pointer
)
482 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
483 Term
* current
= reinterpret_cast<Term
*>(pointer
);
484 std::string value
= current
->getIntegerValue();
485 jstring ret
= env
->NewStringUTF(value
.c_str());
487 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
491 * Class: io_github_cvc5_api_Term
492 * Method: isStringValue
495 JNIEXPORT jboolean JNICALL
496 Java_io_github_cvc5_api_Term_isStringValue(JNIEnv
* env
, jobject
, jlong pointer
)
498 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
499 Term
* current
= reinterpret_cast<Term
*>(pointer
);
500 return static_cast<jboolean
>(current
->isStringValue());
501 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
505 * Class: io_github_cvc5_api_Term
506 * Method: getStringValue
507 * Signature: (J)Ljava/lang/String;
509 JNIEXPORT jstring JNICALL
510 Java_io_github_cvc5_api_Term_getStringValue(JNIEnv
* env
, jobject
, jlong pointer
)
512 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
513 Term
* current
= reinterpret_cast<Term
*>(pointer
);
514 std::wstring termString
= current
->getStringValue();
516 size_t length
= termString
.length();
517 jchar
* unicode
= new jchar
[length
];
518 const wchar_t* s
= termString
.c_str();
519 for (size_t i
= 0; i
< length
; i
++)
523 jstring ret
= env
->NewString(unicode
, length
);
526 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
530 * Class: io_github_cvc5_api_Term
531 * Method: isRealValue
534 JNIEXPORT jboolean JNICALL
535 Java_io_github_cvc5_api_Term_isRealValue(JNIEnv
* env
, jobject
, jlong pointer
)
537 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
538 Term
* current
= reinterpret_cast<Term
*>(pointer
);
539 return static_cast<jboolean
>(current
->isRealValue());
540 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
544 * Class: io_github_cvc5_api_Term
545 * Method: getRealValue
546 * Signature: (J)Ljava/lang/String;
548 JNIEXPORT jstring JNICALL
549 Java_io_github_cvc5_api_Term_getRealValue(JNIEnv
* env
, jobject
, jlong pointer
)
551 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
552 Term
* current
= reinterpret_cast<Term
*>(pointer
);
553 std::string realValue
= current
->getRealValue();
554 return env
->NewStringUTF(realValue
.c_str());
555 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);
559 * Class: io_github_cvc5_api_Term
560 * Method: isBooleanValue
563 JNIEXPORT jboolean JNICALL
564 Java_io_github_cvc5_api_Term_isBooleanValue(JNIEnv
* env
, jobject
, jlong pointer
)
566 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
567 Term
* current
= reinterpret_cast<Term
*>(pointer
);
568 return static_cast<jboolean
>(current
->isBooleanValue());
569 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
573 * Class: io_github_cvc5_api_Term
574 * Method: getBooleanValue
577 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_getBooleanValue(
578 JNIEnv
* env
, jobject
, jlong pointer
)
580 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
581 Term
* current
= reinterpret_cast<Term
*>(pointer
);
582 return static_cast<jboolean
>(current
->getBooleanValue());
583 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
587 * Class: io_github_cvc5_api_Term
588 * Method: isBitVectorValue
591 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isBitVectorValue(
592 JNIEnv
* env
, jobject
, jlong pointer
)
594 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
595 Term
* current
= reinterpret_cast<Term
*>(pointer
);
596 return static_cast<jboolean
>(current
->isBitVectorValue());
597 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
601 * Class: io_github_cvc5_api_Term
602 * Method: getBitVectorValue
603 * Signature: (JI)Ljava/lang/String;
605 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getBitVectorValue(
606 JNIEnv
* env
, jobject
, jlong pointer
, jint base
)
608 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
609 Term
* current
= reinterpret_cast<Term
*>(pointer
);
611 current
->getBitVectorValue(static_cast<std::uint32_t>(base
));
612 return env
->NewStringUTF(ret
.c_str());
613 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
617 * Class: io_github_cvc5_api_Term
618 * Method: isAbstractValue
621 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isAbstractValue(
622 JNIEnv
* env
, jobject
, jlong pointer
)
624 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
625 Term
* current
= reinterpret_cast<Term
*>(pointer
);
626 return static_cast<jboolean
>(current
->isAbstractValue());
627 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
631 * Class: io_github_cvc5_api_Term
632 * Method: getAbstractValue
633 * Signature: (J)Ljava/lang/String;
635 JNIEXPORT jstring JNICALL
Java_io_github_cvc5_api_Term_getAbstractValue(
636 JNIEnv
* env
, jobject
, jlong pointer
)
638 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
639 Term
* current
= reinterpret_cast<Term
*>(pointer
);
640 std::string ret
= current
->getAbstractValue();
641 return env
->NewStringUTF(ret
.c_str());
642 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
646 * Class: io_github_cvc5_api_Term
647 * Method: isTupleValue
650 JNIEXPORT jboolean JNICALL
651 Java_io_github_cvc5_api_Term_isTupleValue(JNIEnv
* env
, jobject
, jlong pointer
)
653 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
654 Term
* current
= reinterpret_cast<Term
*>(pointer
);
655 return static_cast<jboolean
>(current
->isTupleValue());
656 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
660 * Class: io_github_cvc5_api_Term
661 * Method: getTupleValue
664 JNIEXPORT jlongArray JNICALL
665 Java_io_github_cvc5_api_Term_getTupleValue(JNIEnv
* env
, jobject
, jlong pointer
)
667 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
668 Term
* current
= reinterpret_cast<Term
*>(pointer
);
669 std::vector
<Term
> terms
= current
->getTupleValue();
670 jlongArray ret
= getPointersFromObjects
<Term
>(env
, terms
);
672 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
676 * Class: io_github_cvc5_api_Term
677 * Method: isFloatingPointPosZero
680 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointPosZero(
681 JNIEnv
* env
, jobject
, jlong pointer
)
683 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
684 Term
* current
= reinterpret_cast<Term
*>(pointer
);
685 return static_cast<jboolean
>(current
->isFloatingPointPosZero());
686 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
690 * Class: io_github_cvc5_api_Term
691 * Method: isFloatingPointNegZero
694 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointNegZero(
695 JNIEnv
* env
, jobject
, jlong pointer
)
697 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
698 Term
* current
= reinterpret_cast<Term
*>(pointer
);
699 return static_cast<jboolean
>(current
->isFloatingPointNegZero());
700 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
704 * Class: io_github_cvc5_api_Term
705 * Method: isFloatingPointPosInf
708 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointPosInf(
709 JNIEnv
* env
, jobject
, jlong pointer
)
711 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
712 Term
* current
= reinterpret_cast<Term
*>(pointer
);
713 return static_cast<jboolean
>(current
->isFloatingPointPosInf());
714 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
718 * Class: io_github_cvc5_api_Term
719 * Method: isFloatingPointNegInf
722 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointNegInf(
723 JNIEnv
* env
, jobject
, jlong pointer
)
725 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
726 Term
* current
= reinterpret_cast<Term
*>(pointer
);
727 return static_cast<jboolean
>(current
->isFloatingPointNegInf());
728 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
732 * Class: io_github_cvc5_api_Term
733 * Method: isFloatingPointNaN
736 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointNaN(
737 JNIEnv
* env
, jobject
, jlong pointer
)
739 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
740 Term
* current
= reinterpret_cast<Term
*>(pointer
);
741 return static_cast<jboolean
>(current
->isFloatingPointNaN());
742 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
746 * Class: io_github_cvc5_api_Term
747 * Method: isFloatingPointValue
750 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isFloatingPointValue(
751 JNIEnv
* env
, jobject
, jlong pointer
)
753 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
754 Term
* current
= reinterpret_cast<Term
*>(pointer
);
755 return static_cast<jboolean
>(current
->isFloatingPointValue());
756 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
760 * Class: io_github_cvc5_api_Term
761 * Method: getFloatingPointValue
762 * Signature: (J)Lio/github/cvc5/api/Triplet;
764 JNIEXPORT jobject JNICALL
Java_io_github_cvc5_api_Term_getFloatingPointValue(
765 JNIEnv
* env
, jobject thisObject
, jlong pointer
)
767 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
768 Term
* current
= reinterpret_cast<Term
*>(pointer
);
769 auto [exponent
, significand
, term
] = current
->getFloatingPointValue();
770 Term
* termPointer
= new Term(term
);
772 // Long longObject = new Long(pointer)
773 jclass longClass
= env
->FindClass("Ljava/lang/Long;");
774 jmethodID longConstructor
= env
->GetMethodID(longClass
, "<init>", "(J)V");
775 jobject e
= env
->NewObject(longClass
, longConstructor
, exponent
);
776 jobject s
= env
->NewObject(longClass
, longConstructor
, significand
);
777 jobject t
= env
->NewObject(longClass
, longConstructor
, termPointer
);
779 // Triplet triplet = new Triplet<Long, Long, Long>(e, s, t);
780 jclass tripletClass
= env
->FindClass("Lio/github/cvc5/api/Triplet;");
781 jmethodID tripletConstructor
= env
->GetMethodID(
784 "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V");
785 jobject triplet
= env
->NewObject(tripletClass
, tripletConstructor
, e
, s
, t
);
788 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
792 * Class: io_github_cvc5_api_Term
796 JNIEXPORT jboolean JNICALL
797 Java_io_github_cvc5_api_Term_isSetValue(JNIEnv
* env
, jobject
, jlong pointer
)
799 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
800 Term
* current
= reinterpret_cast<Term
*>(pointer
);
801 return static_cast<jboolean
>(current
->isSetValue());
802 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
806 * Class: io_github_cvc5_api_Term
807 * Method: getSetValue
810 JNIEXPORT jlongArray JNICALL
811 Java_io_github_cvc5_api_Term_getSetValue(JNIEnv
* env
, jobject
, jlong pointer
)
813 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
814 Term
* current
= reinterpret_cast<Term
*>(pointer
);
815 std::set
<Term
> terms
= current
->getSetValue();
816 std::vector
<jlong
> pointers(terms
.size());
818 for (const Term
& t
: terms
)
820 pointers
[i
] = reinterpret_cast<jlong
>(new Term(t
));
823 jlongArray ret
= env
->NewLongArray(pointers
.size());
824 env
->SetLongArrayRegion(ret
, 0, pointers
.size(), pointers
.data());
826 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
830 * Class: io_github_cvc5_api_Term
831 * Method: isSequenceValue
834 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isSequenceValue(
835 JNIEnv
* env
, jobject
, jlong pointer
)
837 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
838 Term
* current
= reinterpret_cast<Term
*>(pointer
);
839 return static_cast<jboolean
>(current
->isSequenceValue());
840 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
844 * Class: io_github_cvc5_api_Term
845 * Method: getSequenceValue
848 JNIEXPORT jlongArray JNICALL
Java_io_github_cvc5_api_Term_getSequenceValue(
849 JNIEnv
* env
, jobject
, jlong pointer
)
851 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
852 Term
* current
= reinterpret_cast<Term
*>(pointer
);
853 std::vector
<Term
> terms
= current
->getSequenceValue();
854 jlongArray ret
= getPointersFromObjects
<Term
>(env
, terms
);
856 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
860 * Class: io_github_cvc5_api_Term
861 * Method: isUninterpretedValue
864 JNIEXPORT jboolean JNICALL
Java_io_github_cvc5_api_Term_isUninterpretedValue(
865 JNIEnv
* env
, jobject
, jlong pointer
)
867 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
868 Term
* current
= reinterpret_cast<Term
*>(pointer
);
869 return static_cast<jboolean
>(current
->isUninterpretedValue());
870 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, static_cast<jboolean
>(false));
874 * Class: io_github_cvc5_api_Term
875 * Method: getUninterpretedValue
876 * Signature: (J)Lio/github/cvc5/api/Pair;
878 JNIEXPORT jobject JNICALL
Java_io_github_cvc5_api_Term_getUninterpretedValue(
879 JNIEnv
* env
, jobject
, jlong pointer
)
881 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
882 Term
* current
= reinterpret_cast<Term
*>(pointer
);
883 std::pair
<Sort
, std::int32_t> value
= current
->getUninterpretedValue();
885 Sort
* sort
= new Sort(value
.first
);
886 jlong sortPointer
= reinterpret_cast<jlong
>(sort
);
888 // Long longObject = new Long(pointer)
889 jclass longClass
= env
->FindClass("Ljava/lang/Long;");
890 jmethodID longConstructor
= env
->GetMethodID(longClass
, "<init>", "(J)V");
891 jobject longObject
= env
->NewObject(longClass
, longConstructor
, sortPointer
);
893 // Integer integerObject = new Integer(pair.second)
894 jclass integerClass
= env
->FindClass("Ljava/lang/Integer;");
895 jmethodID integerConstructor
=
896 env
->GetMethodID(integerClass
, "<init>", "(I)V");
897 jobject integerObject
= env
->NewObject(
898 integerClass
, integerConstructor
, static_cast<jint
>(value
.second
));
900 // Pair<String, Long> pair = new Pair<String, Long>(jName, longObject)
901 jclass pairClass
= env
->FindClass("Lio/github/cvc5/api/Pair;");
902 jmethodID pairConstructor
= env
->GetMethodID(
903 pairClass
, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;)V");
905 env
->NewObject(pairClass
, pairConstructor
, longObject
, integerObject
);
908 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, nullptr);
912 * Class: io_github_cvc5_api_Term
916 JNIEXPORT jlong JNICALL
Java_io_github_cvc5_api_Term_iterator(JNIEnv
* env
,
920 CVC5_JAVA_API_TRY_CATCH_BEGIN
;
921 Term
* current
= reinterpret_cast<Term
*>(pointer
);
922 Term::const_iterator
* retPointer
= new Term::const_iterator(current
->begin());
923 return reinterpret_cast<jlong
>(retPointer
);
924 CVC5_JAVA_API_TRY_CATCH_END_RETURN(env
, 0);