Moment *mb = unsmob_moment (b);
SCM_ASSERT_TYPE (ma, a, SCM_ARG1, __FUNCTION__, "moment");
SCM_ASSERT_TYPE (mb, b, SCM_ARG2, __FUNCTION__, "moment");
- return (*ma * *mb).smobbed_copy ();
+ return (*ma * * mb).smobbed_copy ();
}
LY_DEFINE (ly_div_moment, "ly:div-moment",
Moment *mb = unsmob_moment (b);
SCM_ASSERT_TYPE (ma, a, SCM_ARG1, __FUNCTION__, "moment");
SCM_ASSERT_TYPE (mb, b, SCM_ARG2, __FUNCTION__, "moment");
- return (*ma / *mb).smobbed_copy ();
+ return (*ma / * mb).smobbed_copy ();
}
+LY_DEFINE (ly_mod_moment, "ly:mod-moment",
+ 2, 0, 0, (SCM a, SCM b),
+ "Modulo of two moments.")
+{
+ Moment *ma = unsmob_moment (a);
+ Moment *mb = unsmob_moment (b);
+ SCM_ASSERT_TYPE (ma, a, SCM_ARG1, __FUNCTION__, "moment");
+ SCM_ASSERT_TYPE (mb, b, SCM_ARG2, __FUNCTION__, "moment");
+ return (*ma % * mb).smobbed_copy ();
+}
+
+
+LY_DEFINE (ly_moment_grace_numerator, "ly:moment-grace-numerator",
+ 1, 0, 0, (SCM mom),
+ "Extract numerator from grace timing.")
+{
+ Moment *ma = unsmob_moment (mom);
+ SCM_ASSERT_TYPE (ma, mom, SCM_ARG1, __FUNCTION__, "moment");
+
+ return scm_from_int (ma->grace_part_.numerator ());
+}
+
+LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
+ 1, 0, 0, (SCM mom),
+ "Extract denominator from grace timing.")
+{
+ Moment *ma = unsmob_moment (mom);
+ SCM_ASSERT_TYPE (ma, mom, SCM_ARG1, __FUNCTION__, "moment");
+
+ return scm_from_int (ma->grace_part_.denominator ());
+}
LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
1, 0, 0, (SCM mom),
"Extract numerator from main timing.")