Skip to content
Snippets Groups Projects
Select Git revision
  • 3b1f38d3e6367d8b86eb1f72224a9a5b4d6a8c65
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

notify.py

Blame
  • rings.h 573 B
    #ifndef __RINGS_H__
    #define __RINGS_H__
    
    namespace Ring {
    
    #define MakeRing(Name, Size, Plus, Negate, Multiply, One) \
    template < typename T_ > struct Name { \
      typedef T_ T; \
      enum { size = Size }; \
      static T plus(T a, T b) { return Plus; } \
      static T negate(T a) { return Negate; } \
      static T multiply(T a, T b) { return Multiply; } \
      static const T one = One; \
      static const T zero = 0; \
    }
    
    MakeRing(Z5, 5, (a + b) % 5, (5 - a) % 5, (a * b) % 5, 1);
    MakeRing(Z4, 4, (a + b) & 3, (4 - a) & 3, (a * b) & 3, 1);
    MakeRing(Z2_2, 4, a^b, a, a&b, 3);
    
    }
    
    #endif