Revision 15294,
1.5 KB
checked in by ghudson, 24 years ago
(diff) 
This commit was generated by cvs2svn to compensate for changes in r15293,
which included commits to RCS files with nontrunk default branches.

Line  

1  /* mpz/lcm.c: Calculate the least common multiple of two integers. 

2  

3  Copyright (C) 1996, 2000 Free Software Foundation, Inc. 

4  

5  This file is part of the GNU MP Library. 

6  

7  The GNU MP Library is free software; you can redistribute it and/or modify 

8  it under the terms of the GNU Lesser General Public License as published by 

9  the Free Software Foundation; either version 2.1 of the License, or (at your 

10  option) any later version. 

11  

12  The GNU MP Library is distributed in the hope that it will be useful, but 

13  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 

14  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 

15  License for more details. 

16  

17  You should have received a copy of the GNU Lesser General Public License 

18  along with the GNU MP Library; see the file COPYING.LIB. If not, write to 

19  the Free Software Foundation, Inc., 59 Temple Place  Suite 330, Boston, 

20  MA 021111307, USA. */ 

21  

22  #include "gmp.h" 

23  #include "gmpimpl.h" 

24  #include "longlong.h" 

25  

26  void *_mpz_realloc (); 

27  

28  void 

29  #if __STDC__ 

30  mpz_lcm (mpz_ptr r, mpz_srcptr u, mpz_srcptr v) 

31  #else 

32  mpz_lcm (r, u, v) 

33  mpz_ptr r; 

34  mpz_srcptr u; 

35  mpz_srcptr v; 

36  #endif 

37  { 

38  mpz_t g; 

39  mp_size_t usize, vsize, size; 

40  TMP_DECL (marker); 

41  

42  TMP_MARK (marker); 

43  

44  usize = ABS (SIZ (u)); 

45  vsize = ABS (SIZ (v)); 

46  

47  if (usize == 0  vsize == 0) 

48  { 

49  SIZ (r) = 0; 

50  return; 

51  } 

52  

53  size = MAX (usize, vsize); 

54  MPZ_TMP_INIT (g, size); 

55  

56  mpz_gcd (g, u, v); 

57  mpz_divexact (g, u, g); 

58  mpz_mul (r, g, v); 

59  

60  TMP_FREE (marker); 

61  } 

Note: See
TracBrowser
for help on using the repository browser.