Home | History | Annotate | Download | only in dist

Lines Matching refs:v2

568 /* Return the minimum of "v1" and "v2".
570 __isl_give isl_val *isl_val_min(__isl_take isl_val *v1, __isl_take isl_val *v2)
572 if (!v1 || !v2)
576 isl_val_free(v2);
579 if (isl_val_is_nan(v2)) {
581 return v2;
583 if (isl_val_le(v1, v2)) {
584 isl_val_free(v2);
588 return v2;
592 isl_val_free(v2);
596 /* Return the maximum of "v1" and "v2".
598 __isl_give isl_val *isl_val_max(__isl_take isl_val *v1, __isl_take isl_val *v2)
600 if (!v1 || !v2)
604 isl_val_free(v2);
607 if (isl_val_is_nan(v2)) {
609 return v2;
611 if (isl_val_ge(v1, v2)) {
612 isl_val_free(v2);
616 return v2;
620 isl_val_free(v2);
624 /* Return the sum of "v1" and "v2".
626 __isl_give isl_val *isl_val_add(__isl_take isl_val *v1, __isl_take isl_val *v2)
628 if (!v1 || !v2)
631 isl_val_free(v2);
634 if (isl_val_is_nan(v2)) {
636 return v2;
638 if ((isl_val_is_infty(v1) && isl_val_is_neginfty(v2)) ||
639 (isl_val_is_neginfty(v1) && isl_val_is_infty(v2))) {
640 isl_val_free(v2);
644 isl_val_free(v2);
647 if (isl_val_is_infty(v2) || isl_val_is_neginfty(v2)) {
649 return v2;
653 return v2;
655 if (isl_val_is_zero(v2)) {
656 isl_val_free(v2);
663 if (isl_val_is_int(v1) && isl_val_is_int(v2))
664 isl_int_add(v1->n, v1->n, v2->n);
666 if (isl_int_eq(v1->d, v2->d))
667 isl_int_add(v1->n, v1->n, v2->n);
669 isl_int_mul(v1->n, v1->n, v2->d);
670 isl_int_addmul(v1->n, v2->n, v1->d);
671 isl_int_mul(v1->d, v1->d, v2->d);
675 isl_val_free(v2);
679 isl_val_free(v2);
683 /* Return the sum of "v1" and "v2".
685 __isl_give isl_val *isl_val_add_ui(__isl_take isl_val *v1, unsigned long v2)
691 if (v2 == 0)
697 isl_int_addmul_ui(v1->n, v1->d, v2);
702 /* Subtract "v2" from "v1".
704 __isl_give isl_val *isl_val_sub(__isl_take isl_val *v1, __isl_take isl_val *v2)
706 if (!v1 || !v2)
709 isl_val_free(v2);
712 if (isl_val_is_nan(v2)) {
714 return v2;
716 if ((isl_val_is_infty(v1) && isl_val_is_infty(v2)) ||
717 (isl_val_is_neginfty(v1) && isl_val_is_neginfty(v2))) {
718 isl_val_free(v2);
722 isl_val_free(v2);
725 if (isl_val_is_infty(v2) || isl_val_is_neginfty(v2)) {
727 return isl_val_neg(v2);
729 if (isl_val_is_zero(v2)) {
730 isl_val_free(v2);
735 return isl_val_neg(v2);
741 if (isl_val_is_int(v1) && isl_val_is_int(v2))
742 isl_int_sub(v1->n, v1->n, v2->n);
744 if (isl_int_eq(v1->d, v2->d))
745 isl_int_sub(v1->n, v1->n, v2->n);
747 isl_int_mul(v1->n, v1->n, v2->d);
748 isl_int_submul(v1->n, v2->n, v1->d);
749 isl_int_mul(v1->d, v1->d, v2->d);
753 isl_val_free(v2);
757 isl_val_free(v2);
761 /* Subtract "v2" from "v1".
763 __isl_give isl_val *isl_val_sub_ui(__isl_take isl_val *v1, unsigned long v2)
769 if (v2 == 0)
775 isl_int_submul_ui(v1->n, v1->d, v2);
780 /* Return the product of "v1" and "v2".
782 __isl_give isl_val *isl_val_mul(__isl_take isl_val *v1, __isl_take isl_val *v2)
784 if (!v1 || !v2)
787 isl_val_free(v2);
790 if (isl_val_is_nan(v2)) {
792 return v2;
794 if ((!isl_val_is_rat(v1) && isl_val_is_zero(v2)) ||
795 (isl_val_is_zero(v1) && !isl_val_is_rat(v2))) {
796 isl_val_free(v2);
800 isl_val_free(v2);
803 if (isl_val_is_zero(v2)) {
805 return v2;
808 if (isl_val_is_neg(v2))
810 isl_val_free(v2);
813 if (isl_val_is_infty(v2) || isl_val_is_neginfty(v2)) {
815 v2 = isl_val_neg(v2);
817 return v2;
823 if (isl_val_is_int(v1) && isl_val_is_int(v2))
824 isl_int_mul(v1->n, v1->n, v2->n);
826 isl_int_mul(v1->n, v1->n, v2->n);
827 isl_int_mul(v1->d, v1->d, v2->d);
830 isl_val_free(v2);
834 isl_val_free(v2);
838 /* Return the product of "v1" and "v2".
844 __isl_take isl_val *v2)
846 v2);
849 /* Return the product of "v1" and "v2".
851 __isl_give isl_val *isl_val_mul_ui(__isl_take isl_val *v1, unsigned long v2)
858 if (v2 == 0)
862 if (v2 == 1)
868 isl_int_mul_ui(v1->n, v1->n, v2);
873 /* Divide "v1" by "v2".
875 __isl_give isl_val *isl_val_div(__isl_take isl_val *v1, __isl_take isl_val *v2)
877 if (!v1 || !v2)
880 isl_val_free(v2);
883 if (isl_val_is_nan(v2)) {
885 return v2;
887 if (isl_val_is_zero(v2) ||
888 (!isl_val_is_rat(v1) && !isl_val_is_rat(v2))) {
889 isl_val_free(v2);
893 isl_val_free(v2);
897 if (isl_val_is_neg(v2))
899 isl_val_free(v2);
902 if (isl_val_is_infty(v2) || isl_val_is_neginfty(v2)) {
903 isl_val_free(v2);
910 if (isl_val_is_int(v2)) {
911 isl_int_mul(v1->d, v1->d, v2->n);
914 isl_int_mul(v1->d, v1->d, v2->n);
915 isl_int_mul(v1->n, v1->n, v2->d);
918 isl_val_free(v2);
922 isl_val_free(v2);
926 /* Divide "v1" by "v2".
928 __isl_give isl_val *isl_val_div_ui(__isl_take isl_val *v1, unsigned long v2)
934 if (v2 == 0)
936 if (v2 == 1)
946 isl_int_mul_ui(v1->d, v1->d, v2);
951 /* Divide "v1" by "v2".
957 __isl_take isl_val *v2)
959 return isl_val_div(v1, v2);
962 /* Given two integer values "v1" and "v2", check if "v1" is divisible by "v2".
964 isl_bool isl_val_is_divisible_by(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
966 if (!v1 || !v2)
969 if (!isl_val_is_int(v1) || !isl_val_is_int(v2))
973 return isl_bool_ok(isl_int_is_divisible_by(v1->n, v2->n));
976 /* Given two integer values "v1" and "v2", return the residue of "v1"
977 * modulo "v2".
979 __isl_give isl_val *isl_val_mod(__isl_take isl_val *v1, __isl_take isl_val *v2)
981 if (!v1 || !v2)
983 if (!isl_val_is_int(v1) || !isl_val_is_int(v2))
986 if (isl_val_is_nonneg(v1) && isl_val_lt(v1, v2)) {
987 isl_val_free(v2);
993 isl_int_fdiv_r(v1->n, v1->n, v2->n);
994 isl_val_free(v2);
998 isl_val_free(v2);
1002 /* Given two integer values "v1" and "v2", return the residue of "v1"
1003 * modulo "v2".
1009 __isl_take isl_val *v2)
1011 return isl_val_mod(v1, v2);
1016 __isl_give isl_val *isl_val_gcd(__isl_take isl_val *v1, __isl_take isl_val *v2)
1018 if (!v1 || !v2)
1020 if (!isl_val_is_int(v1) || !isl_val_is_int(v2))
1023 if (isl_val_eq(v1, v2)) {
1024 isl_val_free(v2);
1028 isl_val_free(v2);
1031 if (isl_val_is_one(v2)) {
1033 return v2;
1038 isl_int_gcd(v1->n, v1->n, v2->n);
1039 isl_val_free(v2);
1043 isl_val_free(v2);
1089 /* Given two integer values v1 and v2, return their greatest common divisor g,
1090 * as well as two integers x and y such that x * v1 + y * v2 = g.
1093 __isl_take isl_val *v2, __isl_give isl_val **x, __isl_give isl_val **y)
1099 return isl_val_gcd(v1, v2);
1101 if (!v1 || !v2)
1105 if (!isl_val_is_int(v1) || !isl_val_is_int(v2))
1114 isl_int_gcdext(&v1->n, &a->n, &b->n, v1->n, v2->n);
1125 isl_val_free(v2);
1129 isl_val_free(v2);
1283 /* Is "v1" (strictly) less than "v2"?
1285 isl_bool isl_val_lt(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1290 if (!v1 || !v2)
1292 if (isl_val_is_int(v1) && isl_val_is_int(v2))
1293 return isl_bool_ok(isl_int_lt(v1->n, v2->n));
1294 if (isl_val_is_nan(v1) || isl_val_is_nan(v2))
1296 if (isl_val_eq(v1, v2))
1298 if (isl_val_is_infty(v2))
1304 if (isl_val_is_neginfty(v2))
1308 isl_int_mul(t, v1->n, v2->d);
1309 isl_int_submul(t, v2->n, v1->d);
1316 /* Is "v1" (strictly) greater than "v2"?
1318 isl_bool isl_val_gt(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1320 return isl_val_lt(v2, v1);
1348 /* Is "v1" less than or equal to "v2"?
1350 isl_bool isl_val_le(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1355 if (!v1 || !v2)
1357 if (isl_val_is_int(v1) && isl_val_is_int(v2))
1358 return isl_bool_ok(isl_int_le(v1->n, v2->n));
1359 if (isl_val_is_nan(v1) || isl_val_is_nan(v2))
1361 if (isl_val_eq(v1, v2))
1363 if (isl_val_is_infty(v2))
1369 if (isl_val_is_neginfty(v2))
1373 isl_int_mul(t, v1->n, v2->d);
1374 isl_int_submul(t, v2->n, v1->d);
1381 /* Is "v1" greater than or equal to "v2"?
1383 isl_bool isl_val_ge(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1385 return isl_val_le(v2, v1);
1419 /* Is "v1" equal to "v2"?
1421 isl_bool isl_val_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1423 if (!v1 || !v2)
1425 if (isl_val_is_nan(v1) || isl_val_is_nan(v2))
1428 return isl_bool_ok(isl_int_eq(v1->n, v2->n) &&
1429 isl_int_eq(v1->d, v2->d));
1443 /* Is "v1" equal to "v2" in absolute value?
1445 isl_bool isl_val_abs_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1447 if (!v1 || !v2)
1449 if (isl_val_is_nan(v1) || isl_val_is_nan(v2))
1452 return isl_bool_ok(isl_int_abs_eq(v1->n, v2->n) &&
1453 isl_int_eq(v1->d, v2->d));
1456 /* Is "v1" different from "v2"?
1458 isl_bool isl_val_ne(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
1460 if (!v1 || !v2)
1462 if (isl_val_is_nan(v1) || isl_val_is_nan(v2))
1465 return isl_bool_ok(isl_int_ne(v1->n, v2->n) ||
1466 isl_int_ne(v1->d, v2->d));