Skip to content

Conversation

@Om-A-osc
Copy link
Contributor

Progressess #9416.

Description

What is the purpose of this pull request?

This pull request adds a complete implementation of the Half-Normal distribution quantile function (halfnormal/quantile) across the JavaScript, native C, and N-API layers.

Related Issues

Does this pull request have any related issues?

This pull request has the following related issues:

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

All tests, benchmarks, and examples pass for both JavaScript and C implementations. The implementation handles edge cases correctly, including invalid probabilities, non-positive scale parameters, the degenerate case σ = 0, and p = 1 returning +Infinity.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

I used ChatGPT to help derive and verify the half-normal quantile formula.


@stdlib-js/reviewers

---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: passed
  - task: lint_package_json
    status: passed
  - task: lint_repl_help
    status: passed
  - task: lint_javascript_src
    status: passed
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: passed
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: passed
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: missing_dependencies
  - task: lint_c_examples
    status: missing_dependencies
  - task: lint_c_benchmarks
    status: missing_dependencies
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: passed
  - task: lint_license_headers
    status: passed
---
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
@stdlib-bot stdlib-bot added Statistics Issue or pull request related to statistical functionality. First-time Contributor A pull request from a contributor who has never previously committed to the project repository. Needs Review A pull request which needs code review. labels Jan 13, 2026
Copy link
Member

@Planeshifter Planeshifter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks close to be ready.

) {
return 0.0 / 0.0; // NaN
}
if( sigma == 0.0 ){
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing space after if and before opening brace. stdlib C style requires if ( condition ) {.

Suggested change
if( sigma == 0.0 ){
if ( sigma == 0.0 ) {

if( sigma == 0.0 ){
return 0.0;
}
if( p == 1.0 ){
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here - needs spaces after if and before the brace.

Suggested change
if( p == 1.0 ){
if ( p == 1.0 ) {


/**
* Compute the variance of a one-dimensional ndarray using Welford's algorithm.
* Halfnormal distribution quantile function.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing hyphen - should be "Half-normal" (with hyphen) to match the README and other documentation in this package.

Suggested change
* Halfnormal distribution quantile function.
* Half-normal distribution quantile function.

@stdlib-bot
Copy link
Contributor

stdlib-bot commented Jan 13, 2026

Coverage Report

Package Statements Branches Functions Lines
stats/base/dists/halfnormal/quantile $\color{green}305/305$
$\color{green}+0.00%$
$\color{green}29/29$
$\color{green}+0.00%$
$\color{green}4/4$
$\color{green}+0.00%$
$\color{green}305/305$
$\color{green}+0.00%$

The above coverage report was generated for the changes in this PR.

---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: passed
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: passed
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: missing_dependencies
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: passed
  - task: lint_license_headers
    status: passed
---
@Om-A-osc
Copy link
Contributor Author

Thank you @Planeshifter for reviewing my PR. I’ve addressed the style issue in main.c and ensured that Half-normal is used consistently as the name throughout the package. Please let me know if anything else needs to be updated.

---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: na
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
@Om-A-osc Om-A-osc requested a review from Planeshifter January 14, 2026 14:59
@stdlib-bot stdlib-bot removed the First-time Contributor A pull request from a contributor who has never previously committed to the project repository. label Jan 22, 2026
b.end();
});

bench( pkg+':factory', function benchmark( b ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bench( pkg+':factory', function benchmark( b ) {
bench( format( '%s::factory', pkg ), function benchmark( b ) {

var bench = require( '@stdlib/bench' );
var Float64Array = require( '@stdlib/array/float64' );
var uniform = require( '@stdlib/random/base/uniform' );
var isnan = require( '@stdlib/math/base/assert/is-nan' );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var isnan = require( '@stdlib/math/base/assert/is-nan' );
var isnan = require( '@stdlib/math/base/assert/is-nan' );
var format = require( '@stdlib/string/format' );

Comment on lines 52 to 53
}
return quantile;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is sigma not being precomputed through factory fcn here

Copy link
Contributor Author

@Om-A-osc Om-A-osc Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For a Half-normal distribution, sigma is CONSTANT for a given factory instance, but the quantile value itself depends on the input probability p. As a result, there isn’t anything meaningful to precompute inside factory.js beyond validating sigma and handling edge cases which is correctly being done here. TLDR nothing to precompute. However a little optimization of calculating sigma * sqrt(2) can be done and i will fix it.

Copy link
Member

@Neerajpathak07 Neerajpathak07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Om-A-osc This PR will need a bit off refactoring. I suggest you to take a closer look at how the statistical distribution packages are implemented w.r.t the current code convention.
A few examples that I have in mind are:-

  • wald/pdf
  • wald/mean
  • halfnormal/stdev

```

<!-- <div class="equation" align="center" data-raw-text="Q(p;\sigma) = \sigma\sqrt{2}\,\operatorname{erf}^{-1}(p)" data-equation="eq:halfnormal_quantile_function">
<img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@bb29798d6de5a1de3c633e038f832c3c04207865/lib/node_modules/@stdlib/stats/base/dists/halfnormal/quantile/docs/img/equation_halfnormal_quantile_function.svg" alt="Quantile function for a Half-normal distribution.">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to remove this link as you haven't added the svg file for halfnormal/quantile


#### quantile.factory( sigma )

Returns a function for evaluating the [quantile function][quantile-function] of a [Half-normal][halfnormal-distribution] distribution with parameter `sigma`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Returns a function for evaluating the [quantile function][quantile-function] of a [Half-normal][halfnormal-distribution] distribution with parameter `sigma`.
Returns a function for evaluating the [quantile function][quantile-function] of a [Half-normal][halfnormal-distribution] distribution with scale parameter `sigma`.

Comment on lines 41 to 47
len = 100;
p = new Float64Array( len );
sigma = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
p[ i ] = uniform( 0.0, 1.0 );
sigma[ i ] = uniform( EPS, 20.0 );
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
len = 100;
p = new Float64Array( len );
sigma = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
p[ i ] = uniform( 0.0, 1.0 );
sigma[ i ] = uniform( EPS, 20.0 );
}
len = 100;
p = uniform( len, 0.0, 1.0 );
sigma = uniform( len, EPS, 20.0 );

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Neerajpathak07

If you’re referring specifically to @stdlib/random/base/uniform, then it’s worth checking the actual implementation before drawing conclusions.

At the core level, the arguments are not interpreted as (length, min, max). The uniform generator is scalar, and its signature is:

* Returns a uniformly distributed pseudorandom number with minimum support `a`
* and maximum support `b`.
*
* @private
* @param {PRNG} rand - pseudorandom number generator
* @param {number} a - minimum support (inclusive)
* @param {number} b - maximum support (exclusive)
* @returns {number} pseudorandom number
*/
function uniform( rand, a, b ) {
    var r = rand();
    return ( b*r ) + ( (1.0-r)*a ); // equivalent to (b-a)*r + a
}

Here:

  • a and b are bounds
  • the first argument is a PRNG function
  • there is no notion of array size at this level

Calling something like uniform(100, 0, 1) would be invalid for this function.
100 would be treated as a PRNG and and will give incorrect result.

The current benchmark is correct and passes all benchmark tests and should be good.

If the comment is about a different package or wrapper, could you please mention its name explicitly so we’re discussing the same API? That would help keep the feedback focused and actionable.
Please review the implementation and call logic before commenting, and limit
suggestions to concrete, credible improvements rather than assumptions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we are using:-

var uniform = require( '@stdlib/random/array/uniform' );

And the reason for this modification is to remove the need of for loop and generate values up to a len of 100 for both variables. This is also present in a few of the upstream statistical packages which is why I recommended you to take a look at how it was implemented there.
You're right I should have added a comment suggesting to update the path as well. Sorry for the confusion.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Neerajpathak07 is correct. We have moved away from generating individual random variates toward preallocating arrays.

Comment on lines 72 to 78
sigma = 4.0;
myquantile = quantile.factory( sigma );
len = 100;
p = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
p[ i ] = uniform( 0.0, 1.0 );
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
sigma = 4.0;
myquantile = quantile.factory( sigma );
len = 100;
p = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
p[ i ] = uniform( 0.0, 1.0 );
}
myquantile = quantile.factory( 4.0 );
p = uniform( 0.0, 1.0 );

Comment on lines 50 to 56
len = 100;
p = new Float64Array( len );
sigma = new Float64Array( len );
for ( i = 0; i < len; i++ ) {
p[ i ] = uniform( 0.0, 1.0 );
sigma[ i ] = uniform( EPS, 20.0 );
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this file empty.
We are expected to add dependencies to generate test fixtures here.

for i in eachindex(p)
# Half-normal quantile:
# Q(p) = sigma * sqrt(2) * erfinv(p)
z[i] = sigma[i] * sqrt(2.0) * erfinv(p[i])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HalfNormal doesn't exist in Julia; that was an oversight that didn't get caught in PR review. We still need to clean up the runner in the stdev package.

Copy link
Member

@Neerajpathak07 Neerajpathak07 Jan 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah just went through julia's doc to see if it supports halfnormal turns out it doesn't.
@Planeshifter but I'm curious how was it able to generate the fixtures in the first place?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fixtures must have been generated in some other way...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use SciPy.

Comment on lines 100 to 104
} else {
delta = abs( q( p[i] ) - expected[i] );
tol = 40.0 * EPS * abs( expected[i] );
t.ok(delta <= tol, 'p: '+p[i]+', sigma: '+sigma[i]+', q: '+q(p[i])+', expected: '+expected[i]);
}
Copy link
Member

@Neerajpathak07 Neerajpathak07 Jan 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can modify this test to use isAlmostSameValue var
ref:-

t.ok( isAlmostSameValue( y, expected[i], 1500 ), 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. lambda: '+lambda[i]+'. y: '+y+'. E: '+expected[ i ]+'.' );

Also update the other test files with this!

var i;

for ( i = 0; i < p.length; i++ ) {
y = quantile( p[i], sigma[i] );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am a bit confused on why the values for p and sigma in this edge case are not coming form the generated fixture which is data.json

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please take a closer look p and sigma are indeed coming from data.json, as shown by their declarations at the top of the file.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes but at the incorrect position instead of L34 we need to add it inside this edge case. Do you know why we are doing this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have made the change in latest commit. I am not sure but ig its better to have data in test stack rather than heap .Would love to learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah almost there so in your previous attainment you had drawn data from the fixture correctly but it was placed inside the // fixture def were we defined where the auto-generated fixtures are coming from. In-order to keep that def clean and meaningful we avoid any implicit changes.
Also a fact that loading generated values inside a test case when needed can be much more viable and readable.
This is also something that I learned through time, so no need to beat yourself to it!!!!

---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: passed
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: passed
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: passed
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: missing_dependencies
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: missing_dependencies
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: na
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: missing_dependencies
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
…tfile comments

---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: passed
  - task: lint_python
    status: passed
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
@Om-A-osc
Copy link
Contributor Author

@Neerajpathak07 @Planeshifter
I’ve addressed all the review comments in this PR.

Summary of changes:

  • Switched to @stdlib/random/array/uniform where appropriate.
  • Migrated fixture generation from Julia to SciPy, as Julia does not provide a Half-Normal distribution API suitable for generating quantile fixtures.
  • Fixed fixture loading and usage in the test files to ensure consistency across JS and native implementations.
  • Updated benchmark files to use format for consistency and correctness.
  • Made a few other minor cleanup and consistency changes.

All tests, linters, and benchmarks (JS + native) are now passing .

Thank you for taking the time to review this and for the helpful feedback. Please have a look when you get a chance I’m happy to make any further adjustments if needed.

});

tape( 'if any argument is NaN, the function returns NaN', function test( t ) {
t.ok( isnan( quantile( NaN, 1.0 ) ), 'p NaN' );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're deviating from a number of our test conventions here. Typically, we use an explicit t.strictEqual. Furthermore, we have standardized around always using returns expected value for the test message here and below.

There are reasons for this. Namely, to assist in future migration to an in-house test runner. If everything adheres to common conventions, this will make migration much more straightforward.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot use strictEqual for testing NaN values herer, since in JavaScript NaN === NaN evaluates to false. However, strictEqual will still be used wherever possible, and I will make sure we use "returns expected value" the test message.

t.end();
});

tape( 'the function evaluates the Half-normal quantile correctly', function test( t ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
tape( 'the function evaluates the Half-normal quantile correctly', function test( t ) {
tape( 'the function evaluates the half-normal quantile', function test( t ) {

t.end();
});

tape( 'p = 1 returns +Infinity', function test( t ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
tape( 'p = 1 returns +Infinity', function test( t ) {
tape( 'if p = 1, the function returns positive infinity', function test( t ) {

Comment on lines 84 to 90
if ( expected[i] !== null ) {
if ( y === expected[i] ) {
t.strictEqual( y, expected[i], 'p: '+p[i]+', sigma: '+sigma[i]+', y: '+y+', expected: '+expected[i] );
} else {
t.ok( isAlmostSameValue( y, expected[ i ], 40.0 ), 'within tolerance. p: '+p[ i ]+'. sigma: '+sigma[ i ]+'. y: '+y+'. expected: '+expected[ i ]+'.' );
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consolidate to t.strictEqual( isAlmostSameValue( y, expected[ i ], 40 ), true, ... );. No need for the various branching here.

@kgryte kgryte added Feature Issue or pull request for adding a new feature. difficulty: 2 May require some initial design or R&D, but should be straightforward to resolve and/or implement. and removed Needs Review A pull request which needs code review. labels Jan 25, 2026
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
@Om-A-osc
Copy link
Contributor Author

@kgryte Thank you for your review. I did couple of requested changes. Have a look whenever free.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

difficulty: 2 May require some initial design or R&D, but should be straightforward to resolve and/or implement. Feature Issue or pull request for adding a new feature. Statistics Issue or pull request related to statistical functionality.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants