UNPKG

2.55 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.sum = sum;
7exports.sumN = sumN;
8exports.ratio = ratio;
9exports.difference = difference;
10exports.absoluteByParallax = absoluteByParallax;
11exports.absoluteByDistance = absoluteByDistance;
12/**
13 * @copyright 2013 Sonia Keys
14 * @copyright 2016 commenthol
15 * @license MIT
16 * @module stellar
17 */
18/**
19 * Stellar: Chapter 56, Stellar Magnitudes.
20 */
21
22/**
23 * Sum returns the combined apparent magnitude of two stars.
24 */
25function sum(m1, m2) {
26 // (m1, m2 float64) float64
27 var x = 0.4 * (m2 - m1);
28 return m2 - 2.5 * Math.log10(Math.pow(10, x) + 1);
29}
30
31/**
32 * SumN returns the combined apparent magnitude of a number of stars.
33 */
34function sumN(m) {
35 // (m ...float64) float64
36 var s = 0;
37 var _iteratorNormalCompletion = true;
38 var _didIteratorError = false;
39 var _iteratorError = undefined;
40
41 try {
42 for (var _iterator = m[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
43 var mi = _step.value;
44
45 s += Math.pow(10, -0.4 * mi);
46 }
47 } catch (err) {
48 _didIteratorError = true;
49 _iteratorError = err;
50 } finally {
51 try {
52 if (!_iteratorNormalCompletion && _iterator.return) {
53 _iterator.return();
54 }
55 } finally {
56 if (_didIteratorError) {
57 throw _iteratorError;
58 }
59 }
60 }
61
62 return -2.5 * Math.log10(s);
63}
64
65/**
66 * Ratio returns the brightness ratio of two stars.
67 *
68 * Arguments m1, m2 are apparent magnitudes.
69 */
70function ratio(m1, m2) {
71 // (m1, m2 float64) float64
72 var x = 0.4 * (m2 - m1);
73 return Math.pow(10, x);
74}
75
76/**
77 * Difference returns the difference in apparent magnitude of two stars
78 * given their brightness ratio.
79 */
80function difference(ratio) {
81 // (ratio float64) float64
82 return 2.5 * Math.log10(ratio);
83}
84
85/**
86 * AbsoluteByParallax returns absolute magnitude given annual parallax.
87 *
88 * Argument m is apparent magnitude, π is annual parallax in arc seconds.
89 */
90function absoluteByParallax(m, π) {
91 // (m, π float64) float64
92 return m + 5 + 5 * Math.log10(π);
93}
94
95/**
96 * AbsoluteByDistance returns absolute magnitude given distance.
97 *
98 * Argument m is apparent magnitude, d is distance in parsecs.
99 */
100function absoluteByDistance(m, d) {
101 // (m, d float64) float64
102 return m + 5 - 5 * Math.log10(d);
103}
104
105exports.default = {
106 sum: sum,
107 sumN: sumN,
108 ratio: ratio,
109 difference: difference,
110 absoluteByParallax: absoluteByParallax,
111 absoluteByDistance: absoluteByDistance
112};
\No newline at end of file