Skip to content

Commit 2a42857

Browse files
committed
is_absolute: intrinsic 5x-10x faster than java
1 parent 69c5bf7 commit 2a42857

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

+stdlib/is_absolute.m

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
1-
function isabs = is_absolute(p)
1+
function isabs = is_absolute(p, use_java)
22
%% IS_ABSOLUTE
33
% is path absolute?
44
%
55
% https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/io/File.html#isAbsolute()
66
arguments
77
p (1,1) string
8+
use_java (1,1) logical = false
89
end
910

10-
isabs = java.io.File(p).toPath().isAbsolute();
11+
if use_java
12+
% java is about 5x to 10x slower than intrinsic
13+
isabs = java.io.File(p).toPath().isAbsolute();
14+
else
15+
L = strlength(p);
16+
if ispc
17+
isabs = L >= 2 && isletter(extractBetween(p, 1, 1)) && extractBetween(p, 2, 2) == ":";
18+
else
19+
isabs = L >= 1 && startsWith(p, "/");
20+
end
21+
end
1122

1223
end

0 commit comments

Comments
 (0)