mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-25 13:11:00 +00:00
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.
28 lines
756 B
Objective-C
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
|