quakeforge/ruamoko/gatest/basisblade.h
Bill Currie c038670114 [gatest] Add a commutesWith method to blades
It came about from a discussion in the bivector discord about
programmatic testing for blade commutativity and why no texts talked
about it. I came up with an idea that turned out not to work (I guess
I'd overthought how count_flips works). In the end, I decided to keep
it, and simplified metric's sign check.
2024-09-11 17:25:38 +09:00

28 lines
756 B
Objective-C

#ifndef __basisblade_h
#define __basisblade_h
#include <Object.h>
@class Metric;
@interface BasisBlade : Object
{
unsigned mask;
double scale;
}
+(BasisBlade *) scalar:(double) scale;
+(BasisBlade *) zero;
+(BasisBlade *) basis:(unsigned) mask;
+(BasisBlade *) basis:(unsigned) mask scale:(double) scale;
-(BasisBlade *) product:(BasisBlade *) b isOuter:(int)outer metric:(Metric *) m;
-(BasisBlade *) outerProduct:(BasisBlade *) b;
-(BasisBlade *) geometricProduct:(BasisBlade *) b metric:(Metric *) m;
-(BasisBlade *) geometricProduct:(BasisBlade *) b;
-(int) grade;
-(unsigned) mask;
-(double) scale;
-(string) name;
-(int) commutesWith:(BasisBlade *) b;
-(int) commutesWith:(BasisBlade *) b metric:(Metric *)m;
@end
#endif//__basisblade_h