Averages/Mean angle: Difference between revisions

m
m (syntax highlighting fixup automation)
m (→‎{{header|Wren}}: Minor tidy)
 
(5 intermediate revisions by 5 users not shown)
Line 1:
[[Category:Geometry]]
{{task}}
 
Line 19 ⟶ 20:
::<math>\bar{\alpha} = \operatorname{atan2}\left(\frac{1}{n}\cdot\sum_{j=1}^n \sin\alpha_j, \frac{1}{n}\cdot\sum_{j=1}^n \cos\alpha_j\right) </math>
 
;Task
{{task heading}}
 
# write a function/method/subroutine/... that given a list of angles in degrees returns their mean angle. <br> (You should use a built-in function if you have one that does this for degrees or radians).
Line 36 ⟶ 37:
=={{header|11l}}==
{{trans|C#}}
<syntaxhighlight lang="11l">F mean_angle(angles)
V x = sum(angles.map(a -> cos(radians(a)))) / angles.len
V y = sum(angles.map(a -> sin(radians(a)))) / angles.len
Line 53 ⟶ 54:
=={{header|Ada}}==
An implementation based on the formula using the "Arctan" (atan2) function, thus avoiding complex numbers:
<syntaxhighlight lang=Ada"ada">with Ada.Text_IO, Ada.Numerics.Generic_Elementary_Functions;
 
procedure Mean_Angles is
Line 94 ⟶ 95:
 
=={{header|Aime}}==
<syntaxhighlight lang="aime">real
mean(list l)
{
Line 131 ⟶ 132:
{{wont work with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8-8d] - due to extensive use of '''format'''[ted] ''transput''.}}
{{trans|C|Note: This specimen retains the original [[#C|C]] coding style}}
'''File: Averages_Mean_angle.a68'''<syntaxhighlight lang="algol68">#!/usr/bin/a68g --script #
# -*- coding: utf-8 -*- #
 
Line 165 ⟶ 166:
=={{header|AutoHotkey}}==
{{works with|AutoHotkey 1.1}}
<syntaxhighlight lang=AutoHotkey"autohotkey">Angles := [[350, 10], [90, 180, 270, 360], [10, 20, 30]]
MsgBox, % MeanAngle(Angles[1]) "`n"
. MeanAngle(Angles[2]) "`n"
Line 188 ⟶ 189:
 
=={{header|AWK}}==
<syntaxhighlight lang=AWK"awk">#!/usr/bin/awk -f
{
PI = atan2(0,-1);
Line 210 ⟶ 211:
=={{header|BBC BASIC}}==
{{works with|BBC BASIC for Windows}}
<syntaxhighlight lang="bbcbasic"> *FLOAT 64
DIM angles(3)
angles() = 350,10
Line 238 ⟶ 239:
 
=={{header|C}}==
<syntaxhighlight lang="c">#include<math.h>
#include<stdio.h>
 
Line 274 ⟶ 275:
 
=={{header|C sharp|C#}}==
<syntaxhighlight lang="csharp">using System;
using System.Linq;
using static System.Math;
Line 300 ⟶ 301:
=={{header|C++}}==
{{trans|C#}}
<syntaxhighlight lang="cpp">#include <iomanip>
#include <iostream>
#include <vector>
Line 343 ⟶ 344:
 
=={{header|Clojure}}==
<syntaxhighlight lang="clojure">(defn mean-fn
[k coll]
(let [n (count coll)
Line 356 ⟶ 357:
(Math/toDegrees (Math/atan2 a b))))</syntaxhighlight>
Example:
<syntaxhighlight lang="clojure">(mean-angle [350 10])
;=> -1.614809932057922E-15
 
Line 366 ⟶ 367:
 
=={{header|Common Lisp}}==
<syntaxhighlight lang="lisp">(defun average (list)
(/ (reduce #'+ list) (length list)))
 
Line 395 ⟶ 396:
 
=={{header|D}}==
<syntaxhighlight lang="d">import std.stdio, std.algorithm, std.complex;
import std.math: PI;
 
Line 417 ⟶ 418:
=={{header|Delphi}}==
See [[#Pascal]].
=={{header|EasyLang}}==
{{trans|C}}
<syntaxhighlight lang=easylang>
func mean ang[] .
for ang in ang[]
x += cos ang
y += sin ang
.
return atan2 (y / len ang[]) (x / len ang[])
.
print mean [ 350 10 ]
print mean [ 90 180 270 360 ]
print mean [ 10 20 30 ]
</syntaxhighlight>
 
=={{header|EchoLisp}}==
<syntaxhighlight lang="scheme">
(define-syntax-rule (deg->radian deg) (* deg 1/180 PI))
(define-syntax-rule (radian->deg rad) (* 180 (/ PI) rad))
Line 436 ⟶ 452:
 
=={{header|Elixir}}==
<syntaxhighlight lang=Elixir"elixir">
defmodule MeanAngle do
def mean_angle(angles) do
Line 468 ⟶ 484:
=={{header|Erlang}}==
The function from_degrees/1 is used to solve [[Averages/Mean_time_of_day]]. Please keep backwards compatibility when editing. Or update the other module, too.
<syntaxhighlight lang=Erlang"erlang">
-module( mean_angle ).
-export( [from_degrees/1, task/0] ).
Line 498 ⟶ 514:
 
=={{header|Euler Math Toolbox}}==
<syntaxhighlight lang=EulerMathToolbox"eulermathtoolbox">>function meanangle (a) ...
$ z=sum(exp(rad(a)*I));
$ if z~=0 then error("Not meaningful");
Line 517 ⟶ 533:
=={{header|Euphoria}}==
{{works with|OpenEuphoria}}
<syntaxhighlight lang=Euphoria"euphoria">
include std/console.e
include std/mathcons.e
Line 553 ⟶ 569:
 
=={{header|F_Sharp|F#}}==
<syntaxhighlight lang="fsharp">open System
open System.Numerics
 
Line 580 ⟶ 596:
 
=={{header|Factor}}==
<syntaxhighlight lang="factor">USING: formatting kernel math math.functions math.libm math.trig
sequences ;
 
Line 600 ⟶ 616:
=={{header|Fortran}}==
Please find the example output along with the build instructions in the comments at the start of the FORTRAN 2008 source. Compiler: gfortran from the GNU compiler collection. Command interpreter: bash.
<syntaxhighlight lang=FORTRAN"fortran">
!-*- mode: compilation; default-directory: "/tmp/" -*-
!Compilation started at Mon Jun 3 18:07:59
Line 640 ⟶ 656:
 
=={{header|FreeBASIC}}==
<syntaxhighlight lang="freebasic">
' FB 1.05.0 Win64
 
Line 677 ⟶ 693:
=={{header|Go}}==
===Complex===
<syntaxhighlight lang="go">package main
 
import (
Line 714 ⟶ 730:
A mean_angle function that could be substituted above. Functions deg2rad and rad2deg are not used here but there is no runtime advantage either way to using them or not. Inlining should result in eqivalent code being generated. Also the Go Atan2 library function has no limits on the arguments so there is no need to divide by the number of elements.
 
<syntaxhighlight lang="go">func mean_angle(deg []float64) float64 {
var ss, sc float64
for _, x := range deg {
Line 725 ⟶ 741:
 
=={{header|Groovy}}==
<syntaxhighlight lang="groovy">import static java.lang.Math.*
def meanAngle = {
atan2( it.sum { sin(it * PI / 180) } / it.size(), it.sum { cos(it * PI / 180) } / it.size()) * 180 / PI
}</syntaxhighlight>
Test:
<syntaxhighlight lang="groovy">def verifyAngle = { angles ->
def ma = meanAngle(angles)
printf("Mean Angle for $angles: %5.2f%n", ma)
Line 744 ⟶ 760:
 
=={{header|Haskell}}==
<syntaxhighlight lang="haskell">import Data.Complex (cis, phase)
 
meanAngle
Line 769 ⟶ 785:
Alternative Solution: This solution gives an insight about using factoring, many small functions like Forth and using function composition.
 
<syntaxhighlight lang="haskell">
 
-- file: trigdeg.fs
Line 811 ⟶ 827:
=={{header|Icon}} and {{header|Unicon}}==
 
<syntaxhighlight lang="unicon">procedure main(A)
write("Mean angle is ",meanAngle(A))
end
Line 832 ⟶ 848:
 
=={{header|IDL}}==
<syntaxhighlight lang=IDL"idl">function mean_angle, phi
z = total(exp(complex(0,phi*!dtor)))
return, atan(imaginary(z),real_part(z))*!radeg
Line 847 ⟶ 863:
 
=={{header|J}}==
<syntaxhighlight lang=J"j">avgAngleD=: 360|(_1 { [: (**|)&.+.@(+/ % #)&.(*.inv) 1,.])&.(1r180p1&*)</syntaxhighlight>
This verb can be represented as simpler component verbs, for example:
<syntaxhighlight lang=J"j">rfd=: 1r180p1&* NB. convert angle to radians from degrees
toComplex=: *.inv NB. maps integer pairs as length, complex angle (in radians)
mean=: +/ % # NB. calculate arithmetic mean
Line 856 ⟶ 872:
avgAngleD=: 360|avgAngleR&.rfd NB. calculate average angle in degrees</syntaxhighlight>
Example use:
<syntaxhighlight lang=J"j"> avgAngleD 10 350
0
avgAngleD 90 180 270 360 NB. result not meaningful
Line 886 ⟶ 902:
{{trans|NetRexx}}
{{works with|Java|7+}}
<syntaxhighlight lang="java5">import java.util.Arrays;
 
public class AverageMeanAngle {
Line 925 ⟶ 941:
=={{header|JavaScript}}==
===atan2===
<syntaxhighlight lang="javascript">function sum(a) {
var s = 0;
for (var i = 0; i < a.length; i++) s += a[i];
Line 958 ⟶ 974:
 
'''Generic Infrastructure'''
<syntaxhighlight lang="jq">def pi: 4 * (1|atan);
 
def deg2rad: . * pi / 180;
Line 979 ⟶ 995:
 
'''Mean Angle'''
<syntaxhighlight lang="jq"># input: degrees
def mean_angle:
def round:
Line 995 ⟶ 1,011:
| round;</syntaxhighlight>
'''Examples'''
<syntaxhighlight lang="jq">([350, 10], [90, 180, 270, 360], [10, 20, 30])
| "The mean angle of \(.) is: \(mean_angle)"</syntaxhighlight>
 
{{out}}
<syntaxhighlight lang="sh">jq -r -n -f Mean_angle.jq
The mean angle of [350,10] is: 0
The mean angle of [90,180,270,360] is: null
Line 1,006 ⟶ 1,022:
=={{header|Julia}}==
Julia has built-in functions <code>sind</code> and <code>cosd</code> to compute the sine and cosine of angles specified in degrees accurately (avoiding the roundoff errors incurred in conversion to radians), and a built-in function to convert radians to degrees (or vice versa). Using these:
<syntaxhighlight lang="julia">using Statistics
meandegrees(degrees) = rad2deg(atan(mean(sind.(degrees)), mean(cosd.(degrees))))</syntaxhighlight>
The output is:
<syntaxhighlight lang="julia">julia> meandegrees([350, 10])
0.0
 
Line 1,020 ⟶ 1,036:
 
=={{header|Kotlin}}==
<syntaxhighlight lang="scala">// version 1.0.5-2
 
fun meanAngle(angles: DoubleArray): Double {
Line 1,046 ⟶ 1,062:
 
=={{header|Liberty BASIC}}==
<syntaxhighlight lang="lb">global Pi
Pi =3.1415926535
 
Line 1,096 ⟶ 1,112:
 
=={{header|Logo}}==
<syntaxhighlight lang="logo">to mean_angle :angles
local "avgsin
make "avgsin quotient apply "sum map "sin :angles count :angles
Line 1,119 ⟶ 1,135:
{{trans|Tcl}}
{{works with|Lua|5.1}}
<syntaxhighlight lang=Lua"lua">function meanAngle (angleList)
local sumSin, sumCos = 0, 0
for i, angle in pairs(angleList) do
Line 1,141 ⟶ 1,157:
=={{header|Maple}}==
The following procedure takes a list of numeric degrees (with attached units) such as
<syntaxhighlight lang=Maple"maple">> [ 350, 10 ] *~ Unit(arcdeg);
[350 [arcdeg], 10 [arcdeg]]</syntaxhighlight>
as input. (We could use "degree" instead of "arcdeg", since "degree" is taken, by default, to mean angle measure, but it seems best to avoid the ambiguity.)
<syntaxhighlight lang=Maple"maple">MeanAngle := proc( L )
uses Units:-Standard; # for unit-awareness
local u;
Line 1,150 ⟶ 1,166:
end proc:</syntaxhighlight>
Applying this to the given data sets, we obtain:
<syntaxhighlight lang=Maple"maple">> MeanAngle( [ 350, 10 ] *~ Unit(arcdeg) );
0.
 
Line 1,160 ⟶ 1,176:
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<syntaxhighlight lang=Mathematica"mathematica">meanAngle[data_List] := N@Arg[Mean[Exp[I data Degree]]]/Degree</syntaxhighlight>
{{out}}
<pre>meanAngle /@ {{350, 10}, {90, 180, 270, 360}, {10, 20, 30}}
Line 1,166 ⟶ 1,182:
 
=={{header|MATLAB}} / {{header|Octave}}==
<syntaxhighlight lang=MATLAB"matlab">function u = mean_angle(phi)
u = angle(mean(exp(i*pi*phi/180)))*180/pi;
end</syntaxhighlight>
Line 1,175 ⟶ 1,191:
mean_angle([10, 20, 30])
ans = 20.000
</pre>
 
=={{header|MiniScript}}==
<syntaxhighlight lang="miniscript">
atan2 = function(y, x)
return 2 * atan((sqrt(x^2 + y^2) - x) / y)
end function
 
deg2rad = function(x); return x * pi / 180; end function
rad2deg = function(x); return x * 180 / pi; end function
 
meanAngle = function(angles)
xsum = 0; ysum = 0
for angle in angles
xsum += cos(deg2rad(angle))
ysum += sin(deg2rad(angle))
end for
return rad2deg(atan2(ysum / angles.len, xsum / angles.len))
end function
 
manyAngledOnes = [[350, 10], [90, 180, 270, 360], [10, 20, 30]]
 
for angles in manyAngledOnes
mean = meanAngle(angles)
print ["Mean of", angles, "is", mean].join(" ")
end for
</syntaxhighlight>
{{out}}
<pre>
Mean of [350, 10] is 0
Mean of [90, 180, 270, 360] is -90
Mean of [10, 20, 30] is 20.0
</pre>
 
=={{header|NetRexx}}==
{{trans|C}}
<syntaxhighlight lang=NetRexx"netrexx">/* NetRexx */
options replace format comments java crossref symbols nobinary
numeric digits 80
Line 1,233 ⟶ 1,281:
=={{header|Nim}}==
{{works with|Nim|0.20.0+}}
<syntaxhighlight lang="nim">import math, complex
proc meanAngle(deg: openArray[float]): float =
Line 1,251 ⟶ 1,299:
=={{header|Oberon-2}}==
{{works with|oo2c}}
<syntaxhighlight lang="oberon2">
MODULE MeanAngle;
IMPORT
Line 1,293 ⟶ 1,341:
 
=={{header|OCaml}}==
<syntaxhighlight lang="ocaml">let pi = 3.14159_26535_89793_23846_2643
 
let deg2rad d =
Line 1,319 ⟶ 1,367:
;;</syntaxhighlight>
or using the <code>Complex</code> module:
<syntaxhighlight lang="ocaml">open Complex
 
let mean_angle angles =
Line 1,335 ⟶ 1,383:
=={{header|ooRexx}}==
{{trans|REXX}}
<syntaxhighlight lang="oorexx">/*REXX program computes the mean angle (angles expressed in degrees). */
numeric digits 50 /*use fifty digits of precision, */
showDig=10 /*··· but only display 10 digits.*/
Line 1,365 ⟶ 1,413:
 
=={{header|PARI/GP}}==
<syntaxhighlight lang="parigp">meanAngle(v)=atan(sum(i=1,#v,sin(v[i]))/sum(i=1,#v,cos(v[i])))%(2*Pi)
meanDegrees(v)=meanAngle(v*Pi/180)*180/Pi
apply(meanDegrees,[[350, 10], [90, 180, 270, 360], [10, 20, 30]])</syntaxhighlight>
Line 1,375 ⟶ 1,423:
Tested with free pascal.
Try to catch very small cos values and set to 0.0 degrees " Error : Not meaningful" as http://rosettacode.org/wiki/Averages/Mean_angle#Euler_Math_Toolbox complains.
<syntaxhighlight lang="pascal">program MeanAngle;
{$IFDEF DELPHI}
{$APPTYPE CONSOLE}
Line 1,453 ⟶ 1,501:
 
=={{header|Perl}}==
<syntaxhighlight lang="perl">sub Pi () { 3.1415926535897932384626433832795028842 }
 
sub meanangle {
Line 1,479 ⟶ 1,527:
=={{header|Phix}}==
Copied from [[Averages/Mean_angle#Euphoria|Euphoria]], and slightly improved
<!--<syntaxhighlight lang=Phix"phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">MeanAngle</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">angles</span><span style="color: #0000FF;">)</span>
Line 1,509 ⟶ 1,557:
=={{header|PHP}}==
{{trans|C}}
<syntaxhighlight lang="php"><?php
$samples = array(
'1st' => array(350, 10),
Line 1,538 ⟶ 1,586:
 
=={{header|PicoLisp}}==
<syntaxhighlight lang=PicoLisp"picolisp">(load "@lib/math.l")
 
(de meanAngle (Lst)
Line 1,558 ⟶ 1,606:
 
=={{header|PL/I}}==
<syntaxhighlight lang=PL"pl/Ii">averages: procedure options (main); /* 31 August 2012 */
declare b1(2) fixed initial (350, 10);
declare b2(4) fixed initial (90, 180, 270, 360);
Line 1,586 ⟶ 1,634:
 
=={{header|PowerShell}}==
<syntaxhighlight lang=PowerShell"powershell">
function Get-MeanAngle ([double[]]$Angles)
{
Line 1,596 ⟶ 1,644:
</syntaxhighlight>
 
<syntaxhighlight lang=PowerShell"powershell">
@(350, 10), @(90, 180, 270, 360), @(10, 20, 30) | ForEach-Object {Get-MeanAngle $_}
</syntaxhighlight>
Line 1,608 ⟶ 1,656:
 
=={{header|Processing}}==
<syntaxhighlight lang=Processing"processing">void setup() {
println(meanAngle(350, 10));
println(meanAngle(90, 180, 270, 360));
Line 1,628 ⟶ 1,676:
 
=={{header|PureBasic}}==
<syntaxhighlight lang=PureBasic"purebasic">NewList angle.d()
 
Macro AE(x)
Line 1,665 ⟶ 1,713:
=={{header|Python}}==
{{works with|Python|2.6+}}
<syntaxhighlight lang="python">>>> from cmath import rect, phase
>>> from math import radians, degrees
>>> def mean_angle(deg):
Line 1,679 ⟶ 1,727:
 
=={{header|R}}==
<syntaxhighlight lang=R"r">
deg2rad <- function(x) {
x * pi/180
Line 1,723 ⟶ 1,771:
=={{header|Racket}}==
The formula given above can be straightforwardly transcribed into a program:
<syntaxhighlight lang="racket">
#lang racket
 
Line 1,751 ⟶ 1,799:
{{works with|Rakudo|2015.12}}
This solution refuses to return an answer when the angles cancel out to a tiny magnitude.
<syntaxhighlight lang=perl6"raku" line># Of course, you can still use pi and 180.
sub deg2rad { $^d * tau / 360 }
sub rad2deg { $^r * 360 / tau }
Line 1,819 ⟶ 1,867:
REXX statements
<br>into single lines would increase the program's bulk and detract from the main program.
<syntaxhighlight lang="rexx">/*REXX program computes the mean angle for a group of angles (expressed in degrees). */
call pi /*define the value of pi to some accuracy.*/
numeric digits length(pi) - 1; /*use PI width decimal digits of precision,*/
Line 1,883 ⟶ 1,931:
 
=={{header|Ring}}==
<syntaxhighlight lang="ring">
# Project : Averages/Mean angle
 
Line 1,924 ⟶ 1,972:
-90
20.000000
</pre>
 
=={{header|RPL}}==
≪ DEG → angles
≪ 0 1 angles SIZE '''FOR''' j
1 angles j GET R→C P→R + '''NEXT'''
angles SIZE / ARG
≫ ≫ ''''MEANG'''' STO
{{in}}
<pre>
{ 350 10 } MEANG
{ 90 180 270 360 } MEANG
{ 10 20 30 } MEANG
</pre>
{{out}}
<pre>
3: 0
2: -90
1: 20
</pre>
 
=={{header|Ruby}}==
<syntaxhighlight lang="ruby">require 'complex' # Superfluous in Ruby >= 2.0; complex is added to core.
 
def deg2rad(d)
Line 1,953 ⟶ 2,020:
=={{header|Rust}}==
 
<syntaxhighlight lang="rust">
use std::f64;
// the macro is from
Line 2,000 ⟶ 2,067:
 
=={{header|Scala}}==
{{libheader|Scala}}<syntaxhighlight lang=Scala"scala">trait MeanAnglesComputation {
import scala.math.{Pi, atan2, cos, sin}
 
Line 2,024 ⟶ 2,091:
{{trans|Common Lisp}}
 
<syntaxhighlight lang="scheme">
(import (srfi 1 lists)) ;; use 'fold' from library
 
Line 2,057 ⟶ 2,124:
 
=={{header|Seed7}}==
<syntaxhighlight lang="seed7">$ include "seed7_05.s7i";
include "float.s7i";
include "math.s7i";
Line 2,092 ⟶ 2,159:
 
=={{header|Sidef}}==
<syntaxhighlight lang="ruby">func mean_angle(angles) {
atan2(
Math.avg(angles.map{ .deg2rad.sin }...),
Line 2,110 ⟶ 2,177:
 
=={{header|Stata}}==
<syntaxhighlight lang="stata">mata
function meanangle(a) {
return(arg(sum(exp(C(0,a)))))
Line 2,127 ⟶ 2,194:
=={{header|Swift}}==
 
<syntaxhighlight lang="swift">import Foundation
 
@inlinable public func d2r<T: FloatingPoint>(_ f: T) -> T { f * .pi / 180 }
Line 2,156 ⟶ 2,223:
 
=={{header|Tcl}}==
<syntaxhighlight lang="tcl">proc meanAngle {angles} {
set toRadians [expr {atan2(0,-1) / 180}]
set sumSin [set sumCos 0.0]
Line 2,167 ⟶ 2,234:
}</syntaxhighlight>
Demonstration code:
<syntaxhighlight lang="tcl"># A little pretty-printer
proc printMeanAngle {angles} {
puts [format "mean angle of \[%s\] = %.2f" \
Line 2,184 ⟶ 2,251:
 
=={{header|Vala}}==
<syntaxhighlight lang="vala">double meanAngle(double[] angles) {
double y_part = 0.0;
double x_part = 0.0;
Line 2,214 ⟶ 2,281:
 
=={{header|VBA}}==
<syntaxhighlight lang="vb">Option Base 1
Private Function mean_angle(angles As Variant) As Double
Dim sins() As Double, coss() As Double
Line 2,239 ⟶ 2,306:
=={{header|Visual Basic .NET}}==
{{trans|C#}}
<syntaxhighlight lang="vbnet">Imports System.Math
 
Module Module1
Line 2,262 ⟶ 2,329:
20</pre>
 
=={{header|V (Vlang)}}==
{{trans|go}}
<syntaxhighlight lang="v (vlang)">import math
fn mean_angle(deg []f64) f64 {
Line 2,295 ⟶ 2,362:
=={{header|Wren}}==
{{libheader|Wren-fmt}}
<syntaxhighlight lang=ecmascript"wren">import "./fmt" for Fmt
 
var meanAngle = Fn.new { |angles|
Line 2,326 ⟶ 2,393:
 
=={{header|XPL0}}==
<syntaxhighlight lang=XPL0"xpl0">include c:\cxpl\codes;
 
def Pi = 3.14159265358979323846;
Line 2,358 ⟶ 2,425:
 
=={{header|zkl}}==
<syntaxhighlight lang="zkl">fcn meanA(a1,a2,etc){
as:=vm.arglist.pump(List,"toFloat","toRad");
n:=as.len();
Line 2,374 ⟶ 2,441:
20
</pre>
 
[[Category:Geometry]]
9,482

edits