@obinexusmk2/hypernum 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +256 -0
  3. package/dist/index.cjs +3425 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.ts +1449 -0
  6. package/dist/index.js +3284 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/index.umd.js +8 -0
  9. package/dist/index.umd.js.map +1 -0
  10. package/dist/types/config/config-loader.d.ts +56 -0
  11. package/dist/types/config/config-loader.d.ts.map +1 -0
  12. package/dist/types/config/config-parser.d.ts +28 -0
  13. package/dist/types/config/config-parser.d.ts.map +1 -0
  14. package/dist/types/config/config-resolver.d.ts +21 -0
  15. package/dist/types/config/config-resolver.d.ts.map +1 -0
  16. package/dist/types/config/config-source.d.ts +27 -0
  17. package/dist/types/config/config-source.d.ts.map +1 -0
  18. package/dist/types/config/index.d.ts +68 -0
  19. package/dist/types/config/index.d.ts.map +1 -0
  20. package/dist/types/core/common.d.ts +169 -0
  21. package/dist/types/core/common.d.ts.map +1 -0
  22. package/dist/types/core/config.d.ts +197 -0
  23. package/dist/types/core/config.d.ts.map +1 -0
  24. package/dist/types/core/constants.d.ts +88 -0
  25. package/dist/types/core/constants.d.ts.map +1 -0
  26. package/dist/types/core/errors.d.ts +97 -0
  27. package/dist/types/core/errors.d.ts.map +1 -0
  28. package/dist/types/core/hypernum.d.ts +60 -0
  29. package/dist/types/core/hypernum.d.ts.map +1 -0
  30. package/dist/types/core/index.d.ts +6 -0
  31. package/dist/types/core/index.d.ts.map +1 -0
  32. package/dist/types/index.d.ts +33 -0
  33. package/dist/types/index.d.ts.map +1 -0
  34. package/dist/types/operations/arithmetic.d.ts +72 -0
  35. package/dist/types/operations/arithmetic.d.ts.map +1 -0
  36. package/dist/types/operations/bitwise.d.ts +98 -0
  37. package/dist/types/operations/bitwise.d.ts.map +1 -0
  38. package/dist/types/operations/comparison.d.ts +94 -0
  39. package/dist/types/operations/comparison.d.ts.map +1 -0
  40. package/dist/types/operations/conversion.d.ts +79 -0
  41. package/dist/types/operations/conversion.d.ts.map +1 -0
  42. package/dist/types/operations/factorial.d.ts +58 -0
  43. package/dist/types/operations/factorial.d.ts.map +1 -0
  44. package/dist/types/operations/index.d.ts +6 -0
  45. package/dist/types/operations/index.d.ts.map +1 -0
  46. package/dist/types/operations/power.d.ts +49 -0
  47. package/dist/types/operations/power.d.ts.map +1 -0
  48. package/dist/types/storage/Heap.d.ts +95 -0
  49. package/dist/types/storage/Heap.d.ts.map +1 -0
  50. package/dist/types/storage/index.d.ts +2 -0
  51. package/dist/types/storage/index.d.ts.map +1 -0
  52. package/dist/types/structures/ackermann.d.ts +74 -0
  53. package/dist/types/structures/ackermann.d.ts.map +1 -0
  54. package/dist/types/structures/big-array.d.ts +102 -0
  55. package/dist/types/structures/big-array.d.ts.map +1 -0
  56. package/dist/types/structures/index.d.ts +5 -0
  57. package/dist/types/structures/index.d.ts.map +1 -0
  58. package/dist/types/structures/number-tree.d.ts +114 -0
  59. package/dist/types/structures/number-tree.d.ts.map +1 -0
  60. package/dist/types/structures/power-tower.d.ts +74 -0
  61. package/dist/types/structures/power-tower.d.ts.map +1 -0
  62. package/dist/types/utils/formatting.d.ts +45 -0
  63. package/dist/types/utils/formatting.d.ts.map +1 -0
  64. package/dist/types/utils/index.d.ts +5 -0
  65. package/dist/types/utils/index.d.ts.map +1 -0
  66. package/dist/types/utils/parser.d.ts +39 -0
  67. package/dist/types/utils/parser.d.ts.map +1 -0
  68. package/dist/types/utils/precision.d.ts +57 -0
  69. package/dist/types/utils/precision.d.ts.map +1 -0
  70. package/dist/types/utils/validation.d.ts +28 -0
  71. package/dist/types/utils/validation.d.ts.map +1 -0
  72. package/package.json +164 -0
  73. package/rollup.config.js +162 -0
  74. package/src/config/config-loader.ts +226 -0
  75. package/src/config/config-parser.ts +161 -0
  76. package/src/config/config-resolver.ts +52 -0
  77. package/src/config/config-source.ts +32 -0
  78. package/src/config/index.ts +159 -0
  79. package/src/core/common.ts +185 -0
  80. package/src/core/config.ts +393 -0
  81. package/src/core/constants.ts +102 -0
  82. package/src/core/errors.ts +203 -0
  83. package/src/core/hypernum.ts +241 -0
  84. package/src/core/index.ts +5 -0
  85. package/src/index.ts +183 -0
  86. package/src/operations/arithmetic.ts +333 -0
  87. package/src/operations/bitwise.ts +367 -0
  88. package/src/operations/comparison.ts +272 -0
  89. package/src/operations/conversion.ts +400 -0
  90. package/src/operations/factorial.ts +279 -0
  91. package/src/operations/index.ts +5 -0
  92. package/src/operations/power.ts +316 -0
  93. package/src/storage/Heap.ts +238 -0
  94. package/src/storage/index.ts +1 -0
  95. package/src/structures/ackermann.ts +233 -0
  96. package/src/structures/big-array.ts +306 -0
  97. package/src/structures/index.ts +4 -0
  98. package/src/structures/number-tree.ts +404 -0
  99. package/src/structures/power-tower.ts +278 -0
  100. package/src/types/common.d.ts +357 -0
  101. package/src/types/core.d.ts +161 -0
  102. package/src/types/index.d.ts +2 -0
  103. package/src/utils/formatting.ts +246 -0
  104. package/src/utils/index.ts +4 -0
  105. package/src/utils/parser.ts +245 -0
  106. package/src/utils/precision.ts +217 -0
  107. package/src/utils/validation.ts +183 -0
  108. package/tsconfig.json +84 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * src/config/config-loader.ts
3
+ * Responsible for finding and loading configuration files
4
+ */
5
+ import { HypernumConfig } from "@/core";
6
+ import { ConfigSource } from "./config-source";
7
+ export interface ConfigSearchOptions {
8
+ /**
9
+ * Whether to search in parent directories
10
+ */
11
+ searchParentDirs?: boolean;
12
+ /**
13
+ * Additional paths to search
14
+ */
15
+ additionalPaths?: string[];
16
+ /**
17
+ * Base directory to start searching from
18
+ */
19
+ baseDir?: string;
20
+ }
21
+ export declare class ConfigLoader {
22
+ private readonly DEFAULT_CONFIG_FILES;
23
+ private readonly DEFAULT_CONFIG_PATHS;
24
+ private configParser;
25
+ private cachedConfig;
26
+ constructor();
27
+ /**
28
+ * Finds configuration files in standard locations
29
+ */
30
+ findConfigFiles(options?: ConfigSearchOptions): Map<ConfigSource, string>;
31
+ /**
32
+ * Determines the config source type from filename
33
+ */
34
+ getConfigSourceFromFilename(filename: string): ConfigSource;
35
+ /**
36
+ * Loads configuration from a file
37
+ */
38
+ loadConfigFromFile(filePath: string): Partial<HypernumConfig>;
39
+ /**
40
+ * Loads configuration from all available sources
41
+ */
42
+ loadConfig(options?: ConfigSearchOptions): HypernumConfig;
43
+ /**
44
+ * Loads environment variables as configuration
45
+ */
46
+ loadEnvConfig(): Partial<HypernumConfig>;
47
+ /**
48
+ * Saves configuration to a file
49
+ */
50
+ saveConfig(config: HypernumConfig, filePath: string): void;
51
+ /**
52
+ * Clears the configuration cache
53
+ */
54
+ clearCache(): void;
55
+ }
56
+ //# sourceMappingURL=config-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/config/config-loader.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAe,MAAM,QAAQ,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAMnC;IAEF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAInC;IAEF,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAA+B;;IAMnD;;OAEG;IACI,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;IAiDpF;;OAEG;IACI,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAYlE;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAqBpE;;OAEG;IACI,UAAU,CAAC,OAAO,GAAE,mBAAwB,GAAG,cAAc;IAmCpE;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAQ/C;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwBjE;;OAEG;IACI,UAAU,IAAI,IAAI;CAG1B"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * src/config/config-parser.ts
3
+ * Parses configuration files in different formats
4
+ */
5
+ import { HypernumConfig } from "@/core";
6
+ export declare class ConfigParser {
7
+ /**
8
+ * Parses a JSON configuration file
9
+ */
10
+ parseJsonConfig(filePath: string): Partial<HypernumConfig>;
11
+ /**
12
+ * Parses a JavaScript configuration file
13
+ */
14
+ parseJsConfig(filePath: string): Partial<HypernumConfig>;
15
+ /**
16
+ * Parses an RC configuration file
17
+ */
18
+ parseRcConfig(filePath: string): Partial<HypernumConfig>;
19
+ /**
20
+ * Parses an INI-style configuration
21
+ */
22
+ private parseIniStyleConfig;
23
+ /**
24
+ * Stringifies a configuration object for saving
25
+ */
26
+ stringifyConfig(config: HypernumConfig): string;
27
+ }
28
+ //# sourceMappingURL=config-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-parser.d.ts","sourceRoot":"","sources":["../../../src/config/config-parser.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAKxC,qBAAa,YAAY;IACvB;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAUjE;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB/D;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiC/D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsD3B;;OAEG;IACI,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;CAgBvD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * src/config/config-resolver.ts
3
+ * Resolves configuration from multiple sources
4
+ */
5
+ import { HypernumConfig } from '../core/config';
6
+ import { ConfigSource } from './config-source';
7
+ export declare class ConfigResolver {
8
+ /**
9
+ * Default precedence order for configuration sources
10
+ */
11
+ private readonly DEFAULT_PRECEDENCE;
12
+ /**
13
+ * Resolves configuration from multiple sources
14
+ */
15
+ resolveConfig(configs: Map<ConfigSource, Partial<HypernumConfig>>): HypernumConfig;
16
+ /**
17
+ * Validates a configuration source
18
+ */
19
+ validateConfigSource(config: Partial<HypernumConfig>): boolean;
20
+ }
21
+ //# sourceMappingURL=config-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../../src/config/config-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,cAAc;IACzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAMjC;IAEF;;OAEG;IACI,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,cAAc;IAkBzF;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO;CAQtE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * src/config/config-source.ts
3
+ * Enum defining possible configuration sources
4
+ */
5
+ export declare enum ConfigSource {
6
+ /**
7
+ * Environment variables with HYPERNUM_ prefix
8
+ */
9
+ ENV_VARIABLES = "ENV_VARIABLES",
10
+ /**
11
+ * RC file (.hypernumrc, .hypernumrc.json, etc.)
12
+ */
13
+ RC_FILE = "RC_FILE",
14
+ /**
15
+ * JSON configuration file (hypernum.config.json)
16
+ */
17
+ JSON_FILE = "JSON_FILE",
18
+ /**
19
+ * JavaScript configuration file (hypernum.config.js)
20
+ */
21
+ JS_FILE = "JS_FILE",
22
+ /**
23
+ * Inline configuration passed to createHypernum()
24
+ */
25
+ INLINE_CONFIG = "INLINE_CONFIG"
26
+ }
27
+ //# sourceMappingURL=config-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-source.d.ts","sourceRoot":"","sources":["../../../src/config/config-source.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,YAAY;IACpB;;OAEG;IACH,aAAa,kBAAkB;IAE/B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,aAAa,kBAAkB;CAChC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * src/config/index.ts
3
+ * Main configuration module
4
+ */
5
+ import { HypernumConfig } from '../core/config';
6
+ import { ConfigLoader } from './config-loader';
7
+ import { ConfigParser } from './config-parser';
8
+ import { ConfigResolver } from './config-resolver';
9
+ import { ConfigSource } from './config-source';
10
+ interface ConfigurationOptions {
11
+ /**
12
+ * Path to a configuration file to use
13
+ */
14
+ configFile?: string;
15
+ /**
16
+ * Whether to search for configuration files in parent directories
17
+ */
18
+ searchParentDirs?: boolean;
19
+ /**
20
+ * Additional paths to search for configuration files
21
+ */
22
+ additionalSearchPaths?: string[];
23
+ /**
24
+ * Whether to use environment variables
25
+ */
26
+ useEnvVars?: boolean;
27
+ /**
28
+ * Whether to cache the configuration
29
+ */
30
+ cacheConfig?: boolean;
31
+ /**
32
+ * Inline configuration to use as a base
33
+ */
34
+ baseConfig?: Partial<HypernumConfig>;
35
+ }
36
+ /**
37
+ * Main configuration module for Hypernum
38
+ */
39
+ export declare class ConfigurationModule {
40
+ configLoader: ConfigLoader;
41
+ configParser: ConfigParser;
42
+ configResolver: ConfigResolver;
43
+ cachedConfig: HypernumConfig | null;
44
+ constructor();
45
+ /**
46
+ * Gets the configuration, loading from all available sources
47
+ */
48
+ getConfig(options?: ConfigurationOptions): HypernumConfig;
49
+ /**
50
+ * Initializes configuration from a file
51
+ */
52
+ initializeFromFile(filePath: string, options?: ConfigurationOptions): HypernumConfig;
53
+ /**
54
+ * Creates a default configuration
55
+ */
56
+ createDefaultConfig(type: 'basic' | 'full'): HypernumConfig;
57
+ /**
58
+ * Saves configuration to a file
59
+ */
60
+ saveConfigToFile(config: HypernumConfig, filePath: string): void;
61
+ getConfigSourceFromFilename(filename: string): ConfigSource;
62
+ /**
63
+ * Clears the configuration cache
64
+ */
65
+ clearCache(): void;
66
+ }
67
+ export {};
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,cAAc,EAA4C,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,UAAU,oBAAoB;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,cAAc,GAAG,IAAI,CAAQ;;IAQlD;;OAEG;IACI,SAAS,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc;IA+DpE;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,cAAc;IAO/F;;OAEG;IACI,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc;IAIlE;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIhE,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAIlE;;OAEG;IACI,UAAU,IAAI,IAAI;CAI1B"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Common type definitions for Hypernum library
3
+ * Contains shared types used throughout the library's modules
4
+ */
5
+ import { RoundingMode } from '../utils/precision';
6
+ /**
7
+ * Valid input types for numeric values
8
+ */
9
+ export type NumericInput = bigint | string | number;
10
+ /**
11
+ * Result type for operations that may fail
12
+ */
13
+ export type Result<T> = {
14
+ /** Whether the operation succeeded */
15
+ success: boolean;
16
+ /** The operation result if successful */
17
+ value?: T;
18
+ /** Error message if operation failed */
19
+ error?: string;
20
+ };
21
+ /**
22
+ * Base options interface for operations
23
+ */
24
+ export interface BaseOptions {
25
+ /** Decimal precision for operations */
26
+ precision?: number;
27
+ /** Rounding mode for decimal operations */
28
+ roundingMode?: RoundingMode;
29
+ /** Whether to check for overflow */
30
+ checkOverflow?: boolean;
31
+ }
32
+ /**
33
+ * Options for number formatting
34
+ */
35
+ export interface FormatOptions extends BaseOptions {
36
+ /** Number notation style */
37
+ notation?: 'standard' | 'scientific' | 'engineering' | 'compact';
38
+ /** Enable grouping separators */
39
+ grouping?: boolean;
40
+ /** Size of digit groups */
41
+ groupSize?: number;
42
+ /** Decimal point character */
43
+ decimalSeparator?: string;
44
+ /** Grouping separator character */
45
+ groupSeparator?: string;
46
+ /** Convert to uppercase (for special formats) */
47
+ uppercase?: boolean;
48
+ }
49
+ /**
50
+ * Cache configuration
51
+ */
52
+ export interface CacheConfig {
53
+ /** Maximum number of entries */
54
+ maxSize: number;
55
+ /** Time-to-live in milliseconds */
56
+ ttl?: number;
57
+ /** Eviction policy */
58
+ evictionPolicy?: 'LRU' | 'LFU' | 'FIFO';
59
+ }
60
+ /**
61
+ * Mathematical constants configuration
62
+ */
63
+ export interface MathConstantsConfig {
64
+ /** Precision for constant calculations */
65
+ precision: number;
66
+ /** Enable caching of computed values */
67
+ cache?: boolean;
68
+ /** Custom calculation algorithm */
69
+ algorithm?: 'series' | 'iteration' | 'approximation';
70
+ }
71
+ /**
72
+ * Debug configuration
73
+ */
74
+ export interface DebugConfig {
75
+ /** Enable detailed logging */
76
+ verbose: boolean;
77
+ /** Track operation performance */
78
+ trackPerformance: boolean;
79
+ /** Log level */
80
+ logLevel: 'error' | 'warn' | 'info' | 'debug';
81
+ }
82
+ /**
83
+ * Numeric range specification
84
+ */
85
+ export interface NumericRange {
86
+ /** Start of range (inclusive) */
87
+ start: bigint;
88
+ /** End of range (inclusive) */
89
+ end: bigint;
90
+ /** Step size for iteration */
91
+ step?: bigint;
92
+ }
93
+ /**
94
+ * Operation status monitoring
95
+ */
96
+ export interface OperationStatus {
97
+ /** Current phase of operation */
98
+ phase: string;
99
+ /** Percentage complete (0-100) */
100
+ progress: number;
101
+ /** Estimated time remaining (ms) */
102
+ estimatedTimeRemaining?: number;
103
+ /** Memory usage in bytes */
104
+ memoryUsage?: number;
105
+ /** Computation steps completed */
106
+ steps: number;
107
+ }
108
+ /**
109
+ * Performance metrics
110
+ */
111
+ export interface PerformanceMetrics {
112
+ /** Operation execution time (ms) */
113
+ executionTime: number;
114
+ /** Number of computation steps */
115
+ steps: number;
116
+ /** Peak memory usage (bytes) */
117
+ peakMemory: number;
118
+ /** Cache hit rate (0-1) */
119
+ cacheHitRate?: number;
120
+ }
121
+ /**
122
+ * Comparison function type
123
+ * Returns:
124
+ * -1: a < b
125
+ * 0: a = b
126
+ * 1: a > b
127
+ */
128
+ export type Comparator<T> = (a: T, b: T) => -1 | 0 | 1;
129
+ /**
130
+ * Progress callback type
131
+ */
132
+ export type ProgressCallback = (status: OperationStatus) => void;
133
+ /**
134
+ * Error callback type
135
+ */
136
+ export type ErrorCallback = (error: Error, phase: string) => void;
137
+ /**
138
+ * Value validation function type
139
+ */
140
+ export type Validator<T> = (value: T) => boolean;
141
+ /**
142
+ * Node statistics interface
143
+ */
144
+ export interface NodeStats {
145
+ /** Node height in tree */
146
+ height: number;
147
+ /** Subtree size */
148
+ size: number;
149
+ /** Sum of subtree values */
150
+ sum: bigint;
151
+ /** Minimum value in subtree */
152
+ min: bigint;
153
+ /** Maximum value in subtree */
154
+ max: bigint;
155
+ }
156
+ /**
157
+ * Operation options interface
158
+ */
159
+ export interface OperationOptions extends BaseOptions {
160
+ /** Maximum computation steps */
161
+ maxSteps?: number;
162
+ /** Progress callback */
163
+ onProgress?: ProgressCallback;
164
+ /** Error callback */
165
+ onError?: ErrorCallback;
166
+ /** Value validator */
167
+ validator?: Validator<bigint>;
168
+ }
169
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/core/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Configuration type definitions for Hypernum library
3
+ * Defines all configuration options and their default values
4
+ */
5
+ import { RoundingMode } from '../utils/precision';
6
+ import { FormatOptions, DebugConfig, CacheConfig, MathConstantsConfig } from './common';
7
+ /**
8
+ * Basic configuration options for simple usage
9
+ */
10
+ export interface BasicConfig {
11
+ /** Decimal precision for operations */
12
+ precision?: number;
13
+ /** Rounding mode for decimal operations */
14
+ roundingMode?: RoundingMode;
15
+ /** Whether to check for overflow */
16
+ checkOverflow?: boolean;
17
+ /** Maximum allowed computation steps */
18
+ maxSteps?: number;
19
+ /** Enable debug mode */
20
+ debug?: boolean;
21
+ }
22
+ /**
23
+ * Configuration for arithmetic operations
24
+ */
25
+ export interface ArithmeticConfig {
26
+ /** Default precision for decimal operations */
27
+ defaultPrecision: number;
28
+ /** Default rounding mode */
29
+ defaultRoundingMode: RoundingMode;
30
+ /** Whether to check for overflow by default */
31
+ checkOverflow: boolean;
32
+ /** Maximum steps for iterative calculations */
33
+ maxComputationSteps: number;
34
+ /** Configure automatic precision adjustment */
35
+ autoPrecision: {
36
+ enabled: boolean;
37
+ maxPrecision: number;
38
+ minPrecision: number;
39
+ };
40
+ /** Constants calculation configuration */
41
+ constants: MathConstantsConfig;
42
+ }
43
+ /**
44
+ * Configuration for data structures
45
+ */
46
+ export interface DataStructuresConfig {
47
+ /** Array configuration */
48
+ array: {
49
+ initialCapacity: number;
50
+ growthFactor: number;
51
+ maxSize: number;
52
+ };
53
+ /** Tree configuration */
54
+ tree: {
55
+ maxDepth: number;
56
+ autoBalance: boolean;
57
+ nodeLimit: number;
58
+ };
59
+ /** Heap configuration */
60
+ heap: {
61
+ initialCapacity: number;
62
+ growthPolicy: 'double' | 'linear' | 'fibonacci';
63
+ validatePropertyOnOperation: boolean;
64
+ };
65
+ /** Cache configuration */
66
+ cache: CacheConfig & {
67
+ enabled: boolean;
68
+ persistToDisk: boolean;
69
+ compressionEnabled: boolean;
70
+ };
71
+ }
72
+ /**
73
+ * Configuration for number formatting
74
+ */
75
+ export interface FormattingConfig extends FormatOptions {
76
+ /** Scientific notation configuration */
77
+ scientific: {
78
+ /** Minimum exponent to trigger scientific notation */
79
+ minExponent: number;
80
+ /** Maximum significant digits */
81
+ maxSignificantDigits: number;
82
+ /** Exponent separator character */
83
+ exponentSeparator: string;
84
+ };
85
+ /** Engineering notation configuration */
86
+ engineering: {
87
+ /** Use SI prefixes */
88
+ useSIPrefixes: boolean;
89
+ /** Custom unit definitions */
90
+ customUnits?: Map<number, string>;
91
+ };
92
+ /** Localization settings */
93
+ localization: {
94
+ /** Locale identifier */
95
+ locale: string;
96
+ /** Custom number formatting */
97
+ numberFormat?: Intl.NumberFormatOptions;
98
+ /** Use locale-specific grouping */
99
+ useLocaleGrouping: boolean;
100
+ };
101
+ }
102
+ /**
103
+ * Configuration for performance monitoring
104
+ */
105
+ export interface PerformanceConfig {
106
+ /** Enable performance tracking */
107
+ enableTracking: boolean;
108
+ /** Sampling rate for metrics (0-1) */
109
+ samplingRate: number;
110
+ /** Performance thresholds */
111
+ thresholds: {
112
+ /** Warning threshold in milliseconds */
113
+ warnThresholdMs: number;
114
+ /** Error threshold in milliseconds */
115
+ errorThresholdMs: number;
116
+ /** Maximum allowed memory usage in bytes */
117
+ maxMemoryBytes: number;
118
+ };
119
+ /** Metrics collection configuration */
120
+ metrics: {
121
+ /** Enable detailed operation timing */
122
+ timing: boolean;
123
+ /** Track memory usage */
124
+ memory: boolean;
125
+ /** Track cache performance */
126
+ cache: boolean;
127
+ /** Custom metrics to track */
128
+ custom?: Map<string, (operation: any) => number>;
129
+ };
130
+ }
131
+ /**
132
+ * Feature flags for optional functionality
133
+ */
134
+ export interface FeatureFlags {
135
+ /** Enable experimental features */
136
+ experimentalFeatures: boolean;
137
+ /** Use WebAssembly implementations when available */
138
+ useWasm: boolean;
139
+ /** Enable worker thread support */
140
+ workerThreads: boolean;
141
+ /** Enable SharedArrayBuffer support */
142
+ sharedArrayBuffer: boolean;
143
+ /** Enable BigInt64Array support */
144
+ bigIntTypedArrays: boolean;
145
+ }
146
+ /**
147
+ * Full configuration interface with all options
148
+ */
149
+ export interface FullConfig {
150
+ /** Arithmetic operation configuration */
151
+ arithmetic: ArithmeticConfig;
152
+ /** Data structure configuration */
153
+ dataStructures: DataStructuresConfig;
154
+ /** Formatting configuration */
155
+ formatting: FormattingConfig;
156
+ /** Performance configuration */
157
+ performance: PerformanceConfig;
158
+ /** Debug configuration */
159
+ debug: DebugConfig;
160
+ /** Feature flags */
161
+ features: FeatureFlags;
162
+ /** Custom configuration options */
163
+ custom?: Map<string, any>;
164
+ }
165
+ /**
166
+ * Converts FullConfig to BasicConfig if necessary
167
+ */
168
+ export declare function convertToBasicConfig(config: HypernumConfig): BasicConfig;
169
+ /**
170
+ * Combined configuration type that can be either basic or full
171
+ */
172
+ export type HypernumConfig = BasicConfig | FullConfig;
173
+ /**
174
+ * Default configuration values for basic config
175
+ */
176
+ export declare const DEFAULT_BASIC_CONFIG: Required<BasicConfig>;
177
+ /**
178
+ * Full default configuration values
179
+ */
180
+ export declare const DEFAULT_FULL_CONFIG: FullConfig;
181
+ /**
182
+ * Type guard to check if config is a full configuration
183
+ */
184
+ export declare function isFullConfig(config: HypernumConfig): config is FullConfig;
185
+ /**
186
+ * Type guard to check if config is a basic configuration
187
+ */
188
+ export declare function isBasicConfig(config: HypernumConfig): config is BasicConfig;
189
+ /**
190
+ * Validates configuration values
191
+ */
192
+ export declare function validateConfig(config: HypernumConfig): void;
193
+ /**
194
+ * Merges configuration with appropriate defaults
195
+ */
196
+ export declare function mergeConfig(custom?: Partial<HypernumConfig>): HypernumConfig;
197
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/config.ts"],"names":[],"mappings":"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"}