Skip to content

Commit 8cd6984

Browse files
committed
feat: add polyval scripting for C
--- 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: passed - 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent de2ad7d commit 8cd6984

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

lib/node_modules/@stdlib/math/base/special/bessely1/scripts/evalrational.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@
2424
// MODULES //
2525

2626
var resolve = require( 'path' ).resolve;
27+
var readFileSync = require( '@stdlib/fs/read-file' ).sync;
2728
var writeFileSync = require( '@stdlib/fs/write-file' ).sync;
2829
var currentYear = require( '@stdlib/time/current-year' );
2930
var licenseHeader = require( '@stdlib/_tools/licenses/header' );
3031
var compile = require( '@stdlib/math/base/tools/evalrational-compile' );
32+
var compileC = require( '@stdlib/math/base/tools/evalrational-compile-c' );
33+
var substringBefore = require( '@stdlib/string/substring-before' );
34+
var substringAfter = require( '@stdlib/string/substring-after' );
35+
var format = require( '@stdlib/string/format' );
3136

3237

3338
// VARIABLES //
@@ -125,6 +130,33 @@ var header = licenseHeader( 'Apache-2.0', 'js', {
125130
header += '\n/* This is a generated file. Do not edit directly. */\n';
126131

127132

133+
// FUNCTIONS //
134+
135+
/**
136+
* Inserts a compiled function into file content.
137+
*
138+
* @private
139+
* @param {string} text - source content
140+
* @param {string} id - function identifier
141+
* @param {string} str - function string
142+
* @returns {string} updated content
143+
*/
144+
function insert( text, id, str ) {
145+
var before;
146+
var after;
147+
var begin;
148+
var end;
149+
150+
begin = '// BEGIN: '+id;
151+
end = '// END: '+id;
152+
153+
before = substringBefore( text, begin );
154+
after = substringAfter( text, end );
155+
156+
return format( '%s// BEGIN: %s\n\n%s\n%s%s', before, id, str, end, after );
157+
}
158+
159+
128160
// MAIN //
129161

130162
/**
@@ -134,7 +166,9 @@ header += '\n/* This is a generated file. Do not edit directly. */\n';
134166
*/
135167
function main() {
136168
var fpath;
169+
var copts;
137170
var opts;
171+
var file;
138172
var str;
139173

140174
opts = {
@@ -156,6 +190,32 @@ function main() {
156190
fpath = resolve( __dirname, '..', 'lib', 'rational_psqs.js' );
157191
str = header + compile( PS, QS );
158192
writeFileSync( fpath, str, opts );
193+
194+
copts = {
195+
'dtype': 'double',
196+
'name': ''
197+
};
198+
199+
fpath = resolve( __dirname, '..', 'src', 'main.c' );
200+
file = readFileSync( fpath, opts );
201+
202+
copts.name = 'rational_p1q1';
203+
str = compileC( P1, Q1, copts );
204+
file = insert( file, copts.name, str );
205+
206+
copts.name = 'rational_p2q2';
207+
str = compileC( P2, Q2, copts );
208+
file = insert( file, copts.name, str );
209+
210+
copts.name = 'rational_pcqc';
211+
str = compileC( PC, QC, copts );
212+
file = insert( file, copts.name, str );
213+
214+
copts.name = 'rational_psqs';
215+
str = compileC( PS, QS, copts );
216+
file = insert( file, copts.name, str );
217+
218+
writeFileSync( fpath, file, opts );
159219
}
160220

161221
main();

0 commit comments

Comments
 (0)